summaryrefslogtreecommitdiff
path: root/llvm/unittests/CodeGen/MLRegAllocDevelopmentFeatures.cpp
AgeCommit message (Collapse)Author
2024-11-14Overhaul the TargetMachine and LLVMTargetMachine Classes (#111234)Matin Raayai
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
2024-08-11[NFC] Eliminate top-level "using namespace" from some headers. (#102751)Rahul Joshi
- Eliminate top-level "using namespace" from some headers.
2024-06-28[IR] Don't include Module.h in Analysis.h (NFC) (#97023)Nikita Popov
Replace it with a forward declaration instead. Analysis.h is pulled in by all passes, but not all passes need to access the module.
2024-06-26[SlotIndexes] Use simple_ilist instead of ilist. NFC. (#96747)Jay Foad
simple_ilist does not take ownership of its nodes, which is fine for SlotIndexes because the IndexListEntry nodes are allocated with a BumpPtrAllocator and do not need to be freed.
2023-09-03RegAlloc: Rename MLRegalloc* files to use consistent captalizationMatt Arsenault
The other regalloc related files use RegAlloc, not Regalloc.