"git@repo.hca.bsc.es:rferrer/llvm-epi-0.8.git" did not exist on "4db0f8260ab0c6f323b13b672b9d9d5211584a5d"
- Jun 25, 2012
-
-
Jakob Stoklund Olesen authored
When a PHI use is <undef>, don't emit a copy in the predecessor block, but insert an IMPLICIT_DEF instruction instead. This ensures that virtual register uses are always jointly dominated by defs, even if some of them are IMPLICIT_DEF. llvm-svn: 159121
-
- Feb 10, 2012
-
-
Andrew Trick authored
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
-
- Jan 20, 2012
-
-
Jakob Stoklund Olesen authored
llvm-svn: 148594
-
- Dec 06, 2011
-
-
Evan Cheng authored
1. Added opcode BUNDLE 2. Taught MachineInstr class to deal with bundled MIs 3. Changed MachineBasicBlock iterator to skip over bundled MIs; added an iterator to walk all the MIs 4. Taught MachineBasicBlock methods about bundled MIs llvm-svn: 145975
-
- Jul 30, 2011
-
-
Jakob Stoklund Olesen authored
This flag is true from isel to register allocation when the machine function is required to be in SSA form. The TwoAddressInstructionPass and PHIElimination passes clear the flag. The SSA flag wil be used by the machine code verifier to check for SSA form, and eventually an assertion can enforce it in +Asserts builds. This will catch the common target error of creating machine code with multiple defs of a virtual register. llvm-svn: 136532
-
- Apr 23, 2011
-
-
Jay Foad authored
llvm-svn: 130068
-
- Mar 10, 2011
-
-
Cameron Zwarich authored
llvm-svn: 127398
-
- Feb 17, 2011
-
-
Cameron Zwarich authored
llvm-svn: 125727
-
Cameron Zwarich authored
llvm-svn: 125726
-
- Feb 14, 2011
-
-
Cameron Zwarich authored
llvm-svn: 125476
-
- Jan 14, 2011
-
-
Jakob Stoklund Olesen authored
This time let's rephrase to trick gcc-4.3 into not miscompiling. llvm-svn: 123432
-
Jakob Stoklund Olesen authored
llvm-svn: 123423
-
Jakob Stoklund Olesen authored
Fix some callers to better deal with debug values. llvm-svn: 123419
-
- Jan 13, 2011
-
-
Devang Patel authored
llvm-svn: 123389
-
Jakob Stoklund Olesen authored
It will still return an iterator that points to the first terminator or end(), but there may be DBG_VALUE instructions following the first terminator. llvm-svn: 123384
-
- Jan 09, 2011
-
-
Jakob Stoklund Olesen authored
Print virtual registers numbered from 0 instead of the arbitrary FirstVirtualRegister. The first virtual register is printed as %vreg0. TRI::NoRegister is printed as %noreg. llvm-svn: 123107
-
- Dec 05, 2010
-
-
Cameron Zwarich authored
llvm-svn: 120959
-
Cameron Zwarich authored
function so that it can be shared with StrongPHIElimination. llvm-svn: 120951
-
- Dec 04, 2010
-
-
Cameron Zwarich authored
llvm-svn: 120918
-
- Oct 08, 2010
-
-
Owen Anderson authored
llvm-svn: 115996
-
- Aug 23, 2010
-
-
Owen Anderson authored
Now that PassInfo and Pass::ID have been separated, move the rest of the passes over to the new registration API. llvm-svn: 111815
-
- Aug 18, 2010
-
-
Jakob Stoklund Olesen authored
llvm-svn: 111366
-
- Aug 17, 2010
-
-
Evan Cheng authored
PHI elimination shouldn't require machineloopinfo since it's used at -O0. Move the requirement to LiveIntervalAnalysis instead. Note this does not change the number of times machineloopinfo is computed. llvm-svn: 111285
-
Evan Cheng authored
Move the decision logic whether it's a good idea to split a critical edge to clients. Also fixed an erroneous check. An edge is only a back edge when the from and to blocks are in the same loop. llvm-svn: 111256
-
Evan Cheng authored
PHI elimination should not break back edge. It can cause some significant code placement issues. rdar://8263994 good: LBB0_2: mov r2, r0 . . . mov r1, r2 bne LBB0_2 bad: LBB0_2: mov r2, r0 . . . @ BB#3: mov r1, r2 b LBB0_2 llvm-svn: 111221
-
- Aug 06, 2010
-
-
Owen Anderson authored
llvm-svn: 110460
-
Owen Anderson authored
llvm-svn: 110410
-
Owen Anderson authored
ID member as the sole unique type identifier. Clean up APIs related to this change. llvm-svn: 110396
-
- Jul 10, 2010
-
-
Jakob Stoklund Olesen authored
ScheduleDAGEmit, TwoAddressLowering, and PHIElimination. This switches the bulk of register copies to using COPY, but many less used copyRegToReg calls remain. llvm-svn: 108050
-
- Jun 22, 2010
-
-
Dan Gohman authored
into a utility routine, teach it how to update MachineLoopInfo, and make use of it in MachineLICM to split critical edges on demand. llvm-svn: 106555
-
- Jun 18, 2010
-
-
Stuart Hastings authored
addresses a longstanding deficiency noted in many FIXMEs scattered across all the targets. This effectively moves the problem up one level, replacing eleven FIXMEs in the targets with eight FIXMEs in CodeGen, plus one path through FastISel where we actually supply a DebugLoc, fixing Radar 7421831. llvm-svn: 106243
-
- May 06, 2010
-
-
Dan Gohman authored
doesn't have to guess. llvm-svn: 103194
-
- May 05, 2010
-
-
Evan Cheng authored
llvm-svn: 103109
-
- May 04, 2010
-
-
Evan Cheng authored
Teach PHI elimination to remove REG_SEQUENCE instructions and update references of the source operands with references of the destination with subreg indices. e.g. %reg1029<def>, %reg1030<def> = VLD1q16 %reg1024<kill>, ... %reg1031<def> = REG_SEQUENCE %reg1029<kill>, 5, %reg1030<kill>, 6 => %reg1031:5<def>, %reg1031:6<def> = VLD1q16 %reg1024<kill>, ... PHI elimination now does more than phi elimination. It is really a de-SSA pass. llvm-svn: 103039
-
Evan Cheng authored
llvm-svn: 103013
-
- Mar 25, 2010
-
-
Evan Cheng authored
llvm-svn: 99465
-
- Mar 04, 2010
-
-
Evan Cheng authored
llvm-svn: 97687
-
- Feb 23, 2010
-
-
Jakob Stoklund Olesen authored
Previously, LiveIntervalAnalysis would infer phi joins by looking for multiply defined registers. That doesn't work if the phi join is implicitly defined in all but one of the predecessors. llvm-svn: 96994
-
Jakob Stoklund Olesen authored
llvm-svn: 96837
-
- Feb 17, 2010
-
-
Jakob Stoklund Olesen authored
llvm-svn: 96496
-