|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| | 
| 
| 
| | llvm-svn: 70522 | 
| | 
| 
| 
| 
| 
| 
| 
| | -Replace DebugLocTuple's Source ID with CompileUnit's GlobalVariable*
-Remove DwarfWriter::getOrCreateSourceID
-Make necessary changes for the above (fix callsites, etc.)
llvm-svn: 70520 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | classes.
This is implemented as a function rather than a method on TargetRegisterClass
because it is symmetric in its arguments.
llvm-svn: 70512 | 
| | 
| 
| 
| | llvm-svn: 70466 | 
| | 
| 
| 
| | llvm-svn: 70461 | 
| | 
| 
| 
| | llvm-svn: 70453 | 
| | 
| 
| 
| 
| 
| 
| | which better identifies what the optimization is doing. And is more flexible for
future uses.
llvm-svn: 70440 | 
| | 
| 
| 
| 
| 
| | unnecessary.
llvm-svn: 70425 | 
| | 
| 
| 
| | llvm-svn: 70372 | 
| | 
| 
| 
| | llvm-svn: 70366 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | Massive check in. This changes the "-fast" flag to "-O#" in llc. If you want to
use the old behavior, the flag is -O0. This change allows for finer-grained
control over which optimizations are run at different -O levels.
Most of this work was pretty mechanical. The majority of the fixes came from
verifying that a "fast" variable wasn't used anymore. The JIT still uses a
"Fast" flag. I'll change the JIT with a follow-up patch.
llvm-svn: 70343 | 
| | 
| 
| 
| 
| 
| 
| | This should fix PR3379 and PR4064.
Patch inspired by Edwin Török!
llvm-svn: 70328 | 
| | 
| 
| 
| | llvm-svn: 70300 | 
| | 
| 
| 
| | llvm-svn: 70275 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | use the old behavior, the flag is -O0. This change allows for finer-grained
control over which optimizations are run at different -O levels.
Most of this work was pretty mechanical. The majority of the fixes came from
verifying that a "fast" variable wasn't used anymore. The JIT still uses a
"Fast" flag. I'm not 100% sure if it's necessary to change it there...
llvm-svn: 70270 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | PR2957
ISD::VECTOR_SHUFFLE now stores an array of integers representing the shuffle
mask internal to the node, rather than taking a BUILD_VECTOR of ConstantSDNodes
as the shuffle mask.  A value of -1 represents UNDEF.
In addition to eliminating the creation of illegal BUILD_VECTORS just to 
represent shuffle masks, we are better about canonicalizing the shuffle mask,
resulting in substantially better code for some classes of shuffles.
llvm-svn: 70225 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | to precisely describe the h-register subreg register classes.
Thanks to Jakob Stoklund Olesen for spotting this and for the
initial patch!
Also, make getStoreRegOpcode and getLoadRegOpcode aware of the
needs of h registers.
llvm-svn: 70211 | 
| | 
| 
| 
| 
| 
| | GR32_ABCD, and GR64_ABCD, respectively, to help describe them.
llvm-svn: 70210 | 
| | 
| 
| 
| | llvm-svn: 70209 | 
| | 
| 
| 
| | llvm-svn: 70197 | 
| | 
| 
| 
| 
| 
| | Nicolas Capens!
llvm-svn: 70057 | 
| | 
| 
| 
| 
| 
| | f64 types.  This is not used for anything yet.
llvm-svn: 70006 | 
| | 
| 
| 
| 
| 
| 
| | between registers and the stack may be required with the APCS ABI, but it
isn't tied to using a particular version of the ARM architecture.
llvm-svn: 69978 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | chained and "flagged" together.  I also made a few changes to handle the
chain and flag values more consistently.  I found these problems by
inspection so I'm not aware of anything that breaks because of them
(thus no testcase).
llvm-svn: 69977 | 
| | 
| 
| 
| 
| 
| 
| | should be bit-converted to i32, it is sufficient to list only i32 in
subsequent definitions.
llvm-svn: 69973 | 
| | 
| 
| 
| 
| 
| | very elegant, but neither is the tls specification :-(
llvm-svn: 69968 | 
| | 
| 
| 
| | llvm-svn: 69967 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | ISD::VECTOR_SHUFFLE now stores an array of integers representing the shuffle
mask internal to the node, rather than taking a BUILD_VECTOR of ConstantSDNodes
as the shuffle mask.  A value of -1 represents UNDEF.
In addition to eliminating the creation of illegal BUILD_VECTORS just to 
represent shuffle masks, we are better about canonicalizing the shuffle mask,
resulting in substantially better code for some classes of shuffles.
A clean up of x86 shuffle code, and some canonicalizing in DAGCombiner is next.
llvm-svn: 69952 | 
| | 
| 
| 
| | llvm-svn: 69934 | 
| | 
| 
| 
| 
| 
| | an insn from beginnin to find out the banksel operand.
llvm-svn: 69883 | 
| | 
| 
| 
| 
| 
| 
| | memory operand tuples. This doesn't ever come up in normal
code however.
llvm-svn: 69848 | 
| | 
| 
| 
| 
| 
| | The address of data frame for function can be obtained by subtracting 2 from the function begin label.
llvm-svn: 69801 | 
| | 
| 
| 
| 
| 
| | Spotted by gcc-4.5.
llvm-svn: 69673 | 
| | 
| 
| 
| 
| 
| | This fixes PR4002.
llvm-svn: 69672 | 
| | 
| 
| 
| | llvm-svn: 69665 | 
| | 
| 
| 
| 
| 
| 
| | This makes the extra copyRegToReg calls in ScheduleDAGSDNodesEmit.cpp
unnecessary. Derived from a patch by Jakob Stoklund Olesen.
llvm-svn: 69635 | 
| | 
| 
| 
| | llvm-svn: 69624 | 
| | 
| 
| 
| 
| 
| 
| | in the MachineFunction class, renaming it to addLiveIn for consistency with
the same method in MachineBasicBlock.  Thanks for Anton for suggesting this.
llvm-svn: 69615 | 
| | 
| 
| 
| | llvm-svn: 69613 | 
| | 
| 
| 
| | llvm-svn: 69605 | 
| | 
| 
| 
| | llvm-svn: 69417 | 
| | 
| 
| 
| | llvm-svn: 69394 | 
| | 
| 
| 
| | llvm-svn: 69382 | 
| | 
| 
| 
| | llvm-svn: 69381 | 
| | 
| 
| 
| 
| 
| | punctuation.  No functional changes.
llvm-svn: 69378 | 
| | 
| 
| 
| 
| 
| | for ARM.  Patch by Sandeep Patel.
llvm-svn: 69371 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | leaq	foo@TLSGD(%rip), %rdi
as part of the instruction sequence. Using a register other than %rdi and then
copying it to %rdi is not valid.
llvm-svn: 69350 | 
| | 
| 
| 
| | llvm-svn: 69347 | 
| | 
| 
| 
| 
| 
| 
| | matter, because this instruction isn't generated until after
things that care.
llvm-svn: 69336 | 
| | 
| 
| 
| 
| 
| | present, but it's inconsistent.
llvm-svn: 69335 |