- Feb 08, 2012
-
-
Jakob Stoklund Olesen authored
For simplicity, treat calls with register masks as basic block boundaries. This means we can't copy propagate callee-saved registers across calls, but I don't think that is a big deal. llvm-svn: 150108
-
Andrew Trick authored
Moving toward a uniform style of pass definition to allow easier target configuration. Globally declare Pass ID. Globally declare pass initializer. Use INITIALIZE_PASS consistently. Add a call to the initializer from CodeGen.cpp. Remove redundant "createPass" functions and "getPassName" methods. While cleaning up declarations, cleaned up comments (sorry for large diff). llvm-svn: 150100
-
Andrew Trick authored
llvm-svn: 150099
-
Andrew Trick authored
llvm-svn: 150098
-
Andrew Trick authored
llvm-svn: 150097
-
Andrew Trick authored
llvm-svn: 150096
-
Andrew Trick authored
llvm-svn: 150095
-
Andrew Trick authored
llvm-svn: 150094
-
Andrew Trick authored
llvm-svn: 150093
-
Andrew Trick authored
llvm-svn: 150092
-
Andrew Trick authored
llvm-svn: 150091
-
Jakob Stoklund Olesen authored
When a virtual register is live across a call, limit the search space to call-preserved registers. llvm-svn: 150081
-
Jakob Stoklund Olesen authored
Build an ordered vector of register mask operands (i.e., calls) when computing live intervals. Provide a checkRegMaskInterference() function that computes a bit mask of usable registers for a live range. This is a quick way of determining of a live range crosses any calls, and restricting it to the callee saved registers if it does. Previously, we had to discover call clobbers for each candidate register independently. llvm-svn: 150077
-
Andrew Trick authored
llvm-svn: 150044
-
Andrew Trick authored
llvm-svn: 150043
-
Andrew Trick authored
llvm-svn: 150041
-
Devang Patel authored
llvm-svn: 150012
-
- Feb 06, 2012
-
-
Andrew Trick authored
llvm-svn: 149927
-
Andrew Trick authored
llvm-svn: 149926
-
Jakob Stoklund Olesen authored
We have automatic local renumbering now. llvm-svn: 149920
-
Jakob Stoklund Olesen authored
llvm-svn: 149910
-
Bill Wendling authored
were no 'unwind' instructions being generated before this, so this is in effect a no-op. llvm-svn: 149906
-
Bill Wendling authored
remove the code that handles them. llvm-svn: 149901
-
Devang Patel authored
llvm-svn: 149874
-
Craig Topper authored
Move some llvm_unreachable's from r149849 out of switch statements to satisfy -Wcovered-switch-default llvm-svn: 149860
-
- Feb 05, 2012
-
-
Duncan Sands authored
llvm-svn: 149834
-
Nadav Rotem authored
llvm-svn: 149823
-
Craig Topper authored
llvm-svn: 149816
-
Chris Lattner authored
but with a critical fix to the SelectionDAG code that optimizes copies from strings into immediate stores: the previous code was stopping reading string data at the first nul. Address this by adding a new argument to llvm::getConstantStringInfo, preserving the behavior before the patch. llvm-svn: 149800
-
- Feb 04, 2012
-
-
Jakob Stoklund Olesen authored
A live range that has an early clobber tied redef now looks like a normal tied redef, except the early clobber def uses the early clobber slot. This is enough to handle any strange interference problems. llvm-svn: 149769
-
Jakob Stoklund Olesen authored
I don't have a test that fails because of this, but a test case like CodeGen/X86/2009-12-01-EarlyClobberBug.ll exposes the problem. EAX is redefined by a tied early clobber operand on inline asm, and the live range should look like this: %EAX,inf = [48r,64e:0)[64e,80r:1) 0@48r 1@64e Previously, the two values got merged: %EAX,inf = [48r,80r:0) 0@48r With this bug fixed, the REDEF_BY_EC VNInfo flag is no longer needed. llvm-svn: 149768
-
Nick Lewycky authored
Andy, in a previous commit you made this into an ImmutablePass so that you could add it to the PassManager, then in the next commit you left it a Pass but removed the code that added it to the PM. If you do add it to the PM then the PM should take care of deleting it, but it's also true that nothing in codegen needs this object to exist after it's done its work here. It's not clear to me which design you want; this should likely either cease to be a Pass or be added to the PM where other parts of CodeGen will request it. llvm-svn: 149765
-
Jakob Stoklund Olesen authored
If a value is defined by a COPY, that instuction can easily and cheaply be found by getInstructionFromIndex(VNI->def). This reduces the size of VNInfo from 24 to 16 bytes, and improves llc compile time by 3%. llvm-svn: 149763
-
Andrew Trick authored
Passes prior to instructon selection are now split into separate configurable stages. Header dependencies are simplified. The bulk of this diff is simply removal of the silly DisableVerify flags. Sorry for the target header churn. Attempting to stabilize them. llvm-svn: 149754
-
Andrew Trick authored
llvm-svn: 149753
-
Andrew Trick authored
llvm-svn: 149752
-
Devang Patel authored
llvm-svn: 149737
-
Chad Rosier authored
llvm-svn: 149730
-
Jakob Stoklund Olesen authored
llvm-svn: 149722
-
- Feb 03, 2012
-
-
Jakob Stoklund Olesen authored
llvm-svn: 149717
-