mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-09-02 11:30:10 +00:00
Creates a configurable regalloc pipeline. Ensure specific llc options do what they say and nothing more: -reglloc=... has no effect other than selecting the allocator pass itself. This patch introduces a new umbrella flag, "-optimize-regalloc", to enable/disable the optimizing regalloc "superpass". This allows for example testing coalscing and scheduling under -O0 or vice-versa. When a CodeGen pass requires the MachineFunction to have a particular property, we need to explicitly define that property so it can be directly queried rather than naming a specific Pass. For example, to check for SSA, use MRI->isSSA, not addRequired<PHIElimination>. CodeGen transformation passes are never "required" as an analysis ProcessImplicitDefs does not require LiveVariables. We have a plan to massively simplify some of the early passes within the regalloc superpass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150226 91177308-0d34-0410-b5e6-96231b3b80d8
12 lines
397 B
LLVM
12 lines
397 B
LLVM
; RUN: llc -O0 -optimize-regalloc -regalloc=basic < %s
|
|
; This isn't exactly a useful set of command-line options, but check that it
|
|
; doesn't crash. (It was crashing because a register was getting redefined.)
|
|
|
|
target triple = "thumbv7-apple-macosx10.6.7"
|
|
|
|
define i32 @f(i32* %x) nounwind ssp {
|
|
%y = getelementptr inbounds i32* %x, i32 5000
|
|
%tmp103 = load i32* %y, align 4
|
|
ret i32 %tmp103
|
|
}
|