Revision tags: llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4 |
|
#
eec21cce |
| 15-Nov-2024 |
Matin Raayai <raayaiardakani.m@northeastern.edu> |
Fixed un-renamed CodeGenTargetMachineImpl Intheritances in Experimental Targets (#116290)
This PR fixes a set of build issues with experimental targets happened
in result of merging #111234 to mast
Fixed un-renamed CodeGenTargetMachineImpl Intheritances in Experimental Targets (#116290)
This PR fixes a set of build issues with experimental targets happened
in result of merging #111234 to master.
show more ...
|
#
bb3f5e1f |
| 14-Nov-2024 |
Matin Raayai <30674652+matinraayai@users.noreply.github.com> |
Overhaul the TargetMachine and LLVMTargetMachine Classes (#111234)
Following discussions in #110443, and the following earlier discussions
in https://lists.llvm.org/pipermail/llvm-dev/2017-October/
Overhaul the TargetMachine and LLVMTargetMachine Classes (#111234)
Following discussions in #110443, and the following earlier discussions
in https://lists.llvm.org/pipermail/llvm-dev/2017-October/117907.html,
https://reviews.llvm.org/D38482, https://reviews.llvm.org/D38489, this
PR attempts to overhaul the `TargetMachine` and `LLVMTargetMachine`
interface classes. More specifically:
1. Makes `TargetMachine` the only class implemented under
`TargetMachine.h` in the `Target` library.
2. `TargetMachine` contains target-specific interface functions that
relate to IR/CodeGen/MC constructs, whereas before (at least on paper)
it was supposed to have only IR/MC constructs. Any Target that doesn't
want to use the independent code generator simply does not implement
them, and returns either `false` or `nullptr`.
3. Renames `LLVMTargetMachine` to `CodeGenCommonTMImpl`. This renaming
aims to make the purpose of `LLVMTargetMachine` clearer. Its interface
was moved under the CodeGen library, to further emphasis its usage in
Targets that use CodeGen directly.
4. Makes `TargetMachine` the only interface used across LLVM and its
projects. With these changes, `CodeGenCommonTMImpl` is simply a set of
shared function implementations of `TargetMachine`, and CodeGen users
don't need to static cast to `LLVMTargetMachine` every time they need a
CodeGen-specific feature of the `TargetMachine`.
5. More importantly, does not change any requirements regarding library
linking.
cc @arsenm @aeubanks
show more ...
|
#
2f40e3e7 |
| 08-Nov-2024 |
Janis Heims <janis.heims@undertheprinter.com> |
[M68k] implement large code model (#106381)
Fixes #106208.
|
Revision tags: llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init, llvmorg-18.1.8, llvmorg-18.1.7 |
|
#
7652a594 |
| 04-Jun-2024 |
paperchalice <liujunchang97@outlook.com> |
Reland "[NewPM][CodeGen] Port selection dag isel to new pass manager" (#94149)
- Fix build with `EXPENSIVE_CHECKS`
- Remove unused `PassName::ID` to resolve warning
- Mark `~SelectionDAGISel` virt
Reland "[NewPM][CodeGen] Port selection dag isel to new pass manager" (#94149)
- Fix build with `EXPENSIVE_CHECKS`
- Remove unused `PassName::ID` to resolve warning
- Mark `~SelectionDAGISel` virtual so AArch64 backend can work properly
show more ...
|
#
8917afaf |
| 02-Jun-2024 |
paperchalice <liujunchang97@outlook.com> |
Revert "[NewPM][CodeGen] Port selection dag isel to new pass manager" (#94146)
This reverts commit de37c06f01772e02465ccc9f538894c76d89a7a1 to
de37c06f01772e02465ccc9f538894c76d89a7a1
It still b
Revert "[NewPM][CodeGen] Port selection dag isel to new pass manager" (#94146)
This reverts commit de37c06f01772e02465ccc9f538894c76d89a7a1 to
de37c06f01772e02465ccc9f538894c76d89a7a1
It still breaks EXPENSIVE_CHECKS build. Sorry.
show more ...
|
#
d2cdc8ab |
| 02-Jun-2024 |
paperchalice <liujunchang97@outlook.com> |
[NewPM][CodeGen] Port selection dag isel to new pass manager (#83567)
Port selection dag isel to new pass manager.
Only `AMDGPU` and `X86` support new pass version. `-verify-machineinstrs` in new p
[NewPM][CodeGen] Port selection dag isel to new pass manager (#83567)
Port selection dag isel to new pass manager.
Only `AMDGPU` and `X86` support new pass version. `-verify-machineinstrs` in new pass manager belongs to verify instrumentation, it is enabled by default.
show more ...
|
Revision tags: llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4 |
|
#
fe42e72d |
| 25-Feb-2024 |
Rishabh Bali <rishabhsbali@gmail.com> |
[CodeGen] Port AtomicExpand to new Pass Manager (#71220)
Port the `atomicexpand` pass to the new Pass Manager.
Fixes #64559
|
Revision tags: llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0 |
|
#
0a1aa6cd |
| 14-Sep-2023 |
Arthur Eubanks <aeubanks@google.com> |
[NFC][CodeGen] Change CodeGenOpt::Level/CodeGenFileType into enum classes (#66295)
This will make it easy for callers to see issues with and fix up calls
to createTargetMachine after a future chang
[NFC][CodeGen] Change CodeGenOpt::Level/CodeGenFileType into enum classes (#66295)
This will make it easy for callers to see issues with and fix up calls
to createTargetMachine after a future change to the params of
TargetMachine.
This matches other nearby enums.
For downstream users, this should be a fairly straightforward
replacement,
e.g. s/CodeGenOpt::Aggressive/CodeGenOptLevel::Aggressive
or s/CGFT_/CodeGenFileType::
show more ...
|
Revision tags: llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4 |
|
#
3204740b |
| 09-May-2023 |
Min-Yih Hsu <minyihh@uci.edu> |
[M68k] Register MIR Passes with the PassRegistry
In order to use the -stop-before/after infrastructure. Also remove the creator function for M68kConvertMOVToMOVMPass, which has never been created.
[M68k] Register MIR Passes with the PassRegistry
In order to use the -stop-before/after infrastructure. Also remove the creator function for M68kConvertMOVToMOVMPass, which has never been created.
NFC.
show more ...
|
Revision tags: llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2 |
|
#
2dd221fe |
| 06-Feb-2023 |
Bjorn Pettersson <bjorn.a.pettersson@ericsson.com> |
Remove no longer needed includes of LegacyPassManager.h
Most of the removed includes should probably have been removed already when we removed TargetMachine::adjustPassManager.
|
Revision tags: llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7 |
|
#
b9a9b0fb |
| 22-Dec-2022 |
Fangrui Song <i@maskray.me> |
[M68k] Fix MachineFunctionInfo initialization after 69e75ae695d9ef1360a2a1fbefd6e0e0456c3f7b
|
#
19a004b4 |
| 21-Dec-2022 |
Nick Desaulniers <ndesaulniers@google.com> |
[llvm][SelectionDAGISel] support -{start|stop}-{before|after}= for remaining targets
Follow up to the series: 1. https://reviews.llvm.org/D140161 2. https://reviews.llvm.org/D140349 3. https://revie
[llvm][SelectionDAGISel] support -{start|stop}-{before|after}= for remaining targets
Follow up to the series: 1. https://reviews.llvm.org/D140161 2. https://reviews.llvm.org/D140349 3. https://reviews.llvm.org/D140331 4. https://reviews.llvm.org/D140323
Completes the work from the previous two for remaining targets.
This creates the following named passes that can be run via `llc -{start|stop}-{before|after}`: - arc-isel - arm-isel - avr-isel - bpf-isel - csky-isel - hexagon-isel - lanai-isel - loongarch-isel - m68k-isel - msp430-isel - mips-isel - nvptx-isel - ppc-codegen - riscv-isel - sparc-isel - systemz-isel - ve-isel - wasm-isel - xcore-isel
A nice way to write tests for SelectionDAGISel might be to use a RUN: line like: llc -mtriple=<triple> -start-before=<arch>-isel -stop-after=finalize-isel -o -
Fixes: https://github.com/llvm/llvm-project/issues/59538
Reviewed By: asb, zixuan-wu
Differential Revision: https://reviews.llvm.org/D140364
show more ...
|
#
bac97427 |
| 03-Dec-2022 |
Fangrui Song <i@maskray.me> |
CodeGen/CommandFlags: Convert Optional to std::optional
|
#
8c7c20f0 |
| 03-Dec-2022 |
Krzysztof Parzyszek <kparzysz@quicinc.com> |
Convert Optional<CodeModel> to std::optional<CodeModel>
|
Revision tags: llvmorg-15.0.6, llvmorg-15.0.5 |
|
#
e086b24d |
| 09-Nov-2022 |
Sheng <ox59616e@gmail.com> |
[M68k] Add support for atomic instructions
This adds support for atomic_load, atomic_store, atomic_cmpxchg and atomic_rmw
Fixes #48236
Reviewed by: myhsu, efriedma
Differential Revision: https://
[M68k] Add support for atomic instructions
This adds support for atomic_load, atomic_store, atomic_cmpxchg and atomic_rmw
Fixes #48236
Reviewed by: myhsu, efriedma
Differential Revision: https://reviews.llvm.org/D136525
show more ...
|
Revision tags: llvmorg-15.0.4, llvmorg-15.0.3, working, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3 |
|
#
cc6d3f07 |
| 14-Aug-2022 |
Simon Pilgrim <llvm-dev@redking.me.uk> |
[M68k] Fix MSVC llvm::Optional<> deprecation warnings
Use has_value()/value() instead of hasValue()/getValue()
|
Revision tags: llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init, llvmorg-14.0.6, llvmorg-14.0.5, llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1, llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3, llvmorg-14.0.0-rc2, llvmorg-14.0.0-rc1, llvmorg-15-init, llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2 |
|
#
6bf22ae4 |
| 04-Jan-2022 |
Jim Lin <jim@andestech.com> |
[M68k][NFC] Fix file header
Let all file header have the same style. NFC.
|
Revision tags: llvmorg-13.0.1-rc1 |
|
#
89b57061 |
| 08-Oct-2021 |
Reid Kleckner <rnk@google.com> |
Move TargetRegistry.(h|cpp) from Support to MC
This moves the registry higher in the LLVM library dependency stack. Every client of the target registry needs to link against MC anyway to actually us
Move TargetRegistry.(h|cpp) from Support to MC
This moves the registry higher in the LLVM library dependency stack. Every client of the target registry needs to link against MC anyway to actually use the target, so we might as well move this out of Support.
This allows us to ensure that Support doesn't have includes from MC/*.
Differential Revision: https://reviews.llvm.org/D111454
show more ...
|
Revision tags: llvmorg-13.0.0, llvmorg-13.0.0-rc4, llvmorg-13.0.0-rc3 |
|
#
8d3f112f |
| 26-Aug-2021 |
Ricky Taylor <rickytaylor26@gmail.com> |
[M68k] Update pointer data layout
Fixes PR51626.
The M68k requires that all instruction, word and long word reads are aligned to word boundaries. From the 68020 onwards, there is a performance bene
[M68k] Update pointer data layout
Fixes PR51626.
The M68k requires that all instruction, word and long word reads are aligned to word boundaries. From the 68020 onwards, there is a performance benefit from aligning long words to long word boundaries.
The M68k uses the same data layout for pointers and integers.
In line with this, this commit updates the pointer data layout to match the layout already set for 32-bit integers: 32:16:32.
Differential Revision: https://reviews.llvm.org/D108792
show more ...
|
Revision tags: llvmorg-13.0.0-rc2, llvmorg-13.0.0-rc1, llvmorg-14-init, llvmorg-12.0.1, llvmorg-12.0.1-rc4, llvmorg-12.0.1-rc3, llvmorg-12.0.1-rc2 |
|
#
2193347e |
| 16-Jun-2021 |
Sushma Unnibhavi <sushmaunnibhavi425@gmail.com> |
[M68k][GloballSel] Adding initial GlobalISel infrastructure
Wiring up GlobalISel for the M68k backend
Differential Revision: https://reviews.llvm.org/D101819
|
Revision tags: llvmorg-12.0.1-rc1, llvmorg-12.0.0, llvmorg-12.0.0-rc5 |
|
#
62a94b72 |
| 05-Apr-2021 |
John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> |
[M68k] Mark public functions with the LLVM_EXTERNAL_VISIBILITY macro
In 0dbcb3639451, most most target symbols were made hidden by default with the public ones marked with LLVM_EXTERNAL_VISIBILITY.
[M68k] Mark public functions with the LLVM_EXTERNAL_VISIBILITY macro
In 0dbcb3639451, most most target symbols were made hidden by default with the public ones marked with LLVM_EXTERNAL_VISIBILITY. When the M68k target was added, this particular change was forgotten so that external tools cannot make use of the public M68k target functions in libLLVM.so. Thus, add the missing LLVM_EXTERNAL_VISIBILITY macro to all public target functions in the M68k backend.
Differential Revision: https://reviews.llvm.org/D99869
show more ...
|
Revision tags: llvmorg-12.0.0-rc4 |
|
#
9f015757 |
| 14-Mar-2021 |
Ricky Taylor <rickytaylor26@gmail.com> |
[M68k] Make M68k TargetMachine use getter function
This makes M68k match other platforms in this regard.
This was done as part of the AsmParser/Disassembler work since the entry functions of those
[M68k] Make M68k TargetMachine use getter function
This makes M68k match other platforms in this regard.
This was done as part of the AsmParser/Disassembler work since the entry functions of those modules usually reference `getTheXXXTarget()`.
Differential Revision: https://reviews.llvm.org/D98517
show more ...
|
Revision tags: llvmorg-12.0.0-rc3 |
|
#
5ac19e0a |
| 08-Mar-2021 |
Min-Yih Hsu <minyihh@uci.edu> |
[M68k](5/8) Target-specific lowering
- TargetMachine implementation for M68k - ISel, ISched for M68k - Other lowering (e.g. FrameLowering) - AsmPrinter
Authors: myhsu, m4yers, glaubitz
Differe
[M68k](5/8) Target-specific lowering
- TargetMachine implementation for M68k - ISel, ISched for M68k - Other lowering (e.g. FrameLowering) - AsmPrinter
Authors: myhsu, m4yers, glaubitz
Differential Revision: https://reviews.llvm.org/D88391
show more ...
|
#
bec7b166 |
| 08-Mar-2021 |
Min-Yih Hsu <minyihh@uci.edu> |
[M68k](3/8) Skeleton and target description files
- Infrastructure for the target (i.e. build files, target triple etc.) - All of the target description TableGen file
Authors: myhsu, m4yers, glau
[M68k](3/8) Skeleton and target description files
- Infrastructure for the target (i.e. build files, target triple etc.) - All of the target description TableGen file
Authors: myhsu, m4yers, glaubitz
Differential Revision: https://reviews.llvm.org/D88389
show more ...
|