- Jun 15, 2009
-
-
Bill Wendling authored
llvm-svn: 73417
-
Evan Cheng authored
llvm-svn: 73413
-
Bill Wendling authored
that push immediate operands of 1, 2, and 4 bytes (extended to the native register size in each case). The assembly mnemonics are "pushl" and "pushq." One such instruction appears at the beginning of the "start" function , so this is essential for accurate disassembly when unwinding." Patch by Sean Callanan! llvm-svn: 73407
-
Evan Cheng authored
llvm-svn: 73406
-
Evan Cheng authored
- Change register allocation hint to a pair of unsigned integers. The hint type is zero (which means prefer the register specified as second part of the pair) or entirely target dependent. - Allow targets to specify alternative register allocation orders based on allocation hint. Part 2. - Use the register allocation hint system to implement more aggressive load / store multiple formation. - Aggressively form LDRD / STRD. These are formed *before* register allocation. It has to be done this way to shorten live interval of base and offset registers. e.g. v1025 = LDR v1024, 0 v1026 = LDR v1024, 0 => v1025,v1026 = LDRD v1024, 0 If this transformation isn't done before allocation, v1024 will overlap v1025 which means it more difficult to allocate a register pair. - Even with the register allocation hint, it may not be possible to get the desired allocation. In that case, the post-allocation load / store multiple pass must fix the ldrd / strd instructions. They can either become ldm / stm instructions or back to a pair of ldr / str instructions. This is work in progress, not yet enabled. llvm-svn: 73381
-
Chris Lattner authored
llvm-svn: 73373
-
Chris Lattner authored
llvm-svn: 73372
-
Chris Lattner authored
llvm-svn: 73366
-
Dan Gohman authored
llvm-svn: 73362
-
- Jun 14, 2009
-
-
Bruno Cardoso Lopes authored
Introduce new BinaryObject (blob) class, ELF Writer modified to use it. BinaryObject.h by Aaron Gray llvm-svn: 73333
-
- Jun 13, 2009
-
-
Sanjiv Gupta authored
The subprogram descriptor for a function may be missing (llvm-ld linking two static functions with same name), so pick up the compilation unit for the function from the first valid debug loc of its instructions. This patch also emits debug info for structure (aggregate types in general) types. llvm-svn: 73295
-
Evan Cheng authored
consecutive addresses togther. This makes it easier for the post-allocation pass to form ldm / stm. This is step 1. We are still missing a lot of ldm / stm opportunities because of register allocation are not done in the desired order. More enhancements coming. llvm-svn: 73291
-
- Jun 12, 2009
-
-
Evan Cheng authored
llvm-svn: 73252
-
Arnold Schwaighofer authored
out of sync with regular cc. The only difference between the tail call cc and the normal cc was that one parameter register - R9 - was reserved for calling functions through a function pointer. After time the tail call cc has gotten out of sync with the regular cc. We can use R11 which is also caller saved but not used as parameter register for potential function pointers and remove the special tail call cc on x86-64. llvm-svn: 73233
-
Eli Friedman authored
add a few suggestions from looking at some assembly code. llvm-svn: 73210
-
Bruno Cardoso Lopes authored
llvm-svn: 73209
-
- Jun 11, 2009
-
-
Bruno Cardoso Lopes authored
Emission for globals, using the correct data sections Function alignment can be computed for each target using TargetELFWriterInfo Some small fixes llvm-svn: 73201
-
Sanjiv Gupta authored
llvm-svn: 73194
-
Sanjiv Gupta authored
llvm-svn: 73185
-
Sanjiv Gupta authored
llvm-svn: 73184
-
- Jun 10, 2009
-
-
Anton Korobeynikov authored
llvm-svn: 73152
-
- Jun 09, 2009
-
-
Bill Wendling authored
change. llvm-svn: 73143
-
Sanjiv Gupta authored
PIC16 emits auto variables as globals. When optimizer removes a function entierly by estimating its side effects on globals, those globals(autos) without a function were not being printed by the Asm printer. llvm-svn: 73135
-
Anton Korobeynikov authored
llvm-svn: 73098
-
Anton Korobeynikov authored
llvm-svn: 73097
-
Anton Korobeynikov authored
ABI. The missing piece is support for putting "homogeneous aggregates" into registers. Patch by Sandeep Patel! llvm-svn: 73095
-
- Jun 08, 2009
-
-
Anton Korobeynikov authored
llvm-svn: 73085
-
Anton Korobeynikov authored
llvm-svn: 73080
-
Bill Wendling authored
llvm-svn: 73075
-
- Jun 07, 2009
-
-
Eli Friedman authored
llvm-svn: 73017
-
Eli Friedman authored
on x86 to handle more cases. Fix a bug in said code that would cause it to read past the end of an object. Rewrite the code in SelectionDAGLegalize::ExpandBUILD_VECTOR to be a bit more general. Remove PerformBuildVectorCombine, which is no longer necessary with these changes. In addition to simplifying the code, with this change, we can now catch a few more cases of consecutive loads. llvm-svn: 73012
-
Eli Friedman authored
instructions. llvm-svn: 73009
-
- Jun 06, 2009
-
-
Eli Friedman authored
llvm-svn: 72991
-
Eli Friedman authored
nodes for vectors with an i16 element type. Add an optimization for building a vector which is all zeros/undef except for the bottom element, where the bottom element is an i8 or i16. llvm-svn: 72988
-
Eli Friedman authored
llvm-svn: 72987
-
Bruno Cardoso Lopes authored
llvm-svn: 72986
-
Eli Friedman authored
llvm-svn: 72985
-
Eli Friedman authored
conversions for x86, like <2 x i32> -> <2 x float> and <4 x i16> -> <4 x float>. llvm-svn: 72983
-
Dan Gohman authored
llvm-svn: 72969
-
- Jun 05, 2009
-
-
Devang Patel authored
Update code generator to use this attribute and remove NoImplicitFloat target option. Update llc to set this attribute when -no-implicit-float command line option is used. llvm-svn: 72959
-