- Feb 09, 2012
-
-
David Blaikie authored
Unify default construction of error_code uses on this idiom so that users don't feel compelled to make static globals for naming convenience. (unfortunately I couldn't make the original ctor private as some APIs don't return their result, instead using an out parameter (that makes sense to default construct) - which is a bit of a pity. I did, however, find/fix some cases of unnecessary default construction of error_code before I hit the unfixable cases) llvm-svn: 150197
-
Jakob Stoklund Olesen authored
This only adds the interference checks required for correctness. We still need to take advantage of register masks for the interference driven live range splitting. llvm-svn: 150191
-
Devang Patel authored
Now subprogram descriptors are not collected by llvm.dbg.sp NamedMDNode. Update document to reflect this change. llvm-svn: 150187
-
Benjamin Kramer authored
llvm-svn: 150183
-
Sirish Pande authored
llvm-svn: 150178
-
Benjamin Kramer authored
GlobalOpt runs early in the pipeline (before inlining) and complex class hierarchies often introduce bitcasts or GEPs which weren't optimized away. Teach it to ignore side-effect free instructions instead of depending on other passes to remove them. llvm-svn: 150174
-
Benjamin Kramer authored
Store just the SimpleValueType in the generated VT tables for each register class, eliminating static ctors. llvm-svn: 150173
-
Benjamin Kramer authored
No change on i386. llvm-svn: 150170
-
James Molloy authored
Teach the MC and disassembler about SoftFail, and hook it up to UNPREDICTABLE on ARM. Wire this to tBLX in order to provide test coverage. llvm-svn: 150169
-
Craig Topper authored
llvm-svn: 150167
-
Craig Topper authored
Flatten some of the arrays in the X86 disassembler tables to reduce space needed to store pointers on 64-bit hosts and reduce relocations needed at startup. Part of PR11953. llvm-svn: 150161
-
Lang Hames authored
Failure to preserve kills was causing LiveIntervals to miss some EFLAGS live ranges. Unfortunately I've been unable to reduce a good test case yet. llvm-svn: 150152
-
NAKAMURA Takumi authored
llvm-svn: 150151
-
Lang Hames authored
llvm-svn: 150150
-
Lang Hames authored
llvm-svn: 150149
-
Andrew Trick authored
Split CodeGen into stages. Distinguish between optimization and correctness. llvm-svn: 150122
-
Andrew Trick authored
llvm-svn: 150121
-
David Blaikie authored
If someone would prefer a clear name for the 'success' error_value we could come up with one - potentially just a 'named constructor' style 'error_value::success()' to make this expression more self-documenting. If I see this come up in other cases I'll certainly consider it. One step along the way to resolving PR11944. llvm-svn: 150120
-
Jakob Stoklund Olesen authored
This does make a difference, at least when using RABasic. llvm-svn: 150118
-
Jakob Stoklund Olesen authored
Calls clobber the flags, but when using register masks there is no EFLAGS<imp-def> operand. llvm-svn: 150117
-
Jakob Stoklund Olesen authored
I think this was already the intention, but DeadMachineInstructionElim was accidentally tracking the liveness of reserved registers. Now, instructions with reserved defs are never deleted. This prevents the call stack adjustment instructions from getting deleted when enabling register masks. llvm-svn: 150116
-
- 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
-
Evan Cheng authored
llvm-svn: 150107
-
Chris Lattner authored
llvm-svn: 150105
-
Kostya Serebryany authored
llvm-svn: 150102
-
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
-
Benjamin Kramer authored
X86GenRegisterInfo.inc | 1032 ------------------------------------------------- 1 file changed, 1032 deletions(-) llvm-svn: 150080
-
Brendon Cahoon authored
Creating the isPredicated TSFlag enables the code to use the property defined in the instruction format instead of using a large switch statement. llvm-svn: 150078
-
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
-
Benjamin Kramer authored
llvm-svn: 150076
-