mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 19:23:23 +01:00
c3cc8fa604
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. llvm-svn: 150226
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
|
|
}
|