- Dec 16, 2008
-
-
Dan Gohman authored
llvm-svn: 61065
-
- Dec 15, 2008
-
-
Mon P Wang authored
llvm-svn: 61050
-
Dan Gohman authored
llvm-svn: 61036
-
Mon P Wang authored
and insert vector element. Modified extract vector element to extend the result to match the expected promoted type. llvm-svn: 61029
-
- Dec 14, 2008
-
-
Duncan Sands authored
target constants are allowed to have an illegal type. llvm-svn: 61006
-
Bill Wendling authored
Running /Users/void/llvm/llvm.src/test/CodeGen/Generic/dg.exp ... FAIL: /Users/void/llvm/llvm.src/test/CodeGen/Generic/asm-large-immediate.ll Failed with exit(1) at line 1 while running: llvm-as < /Users/void/llvm/llvm.src/test/CodeGen/Generic/asm-large-immediate.ll | llc | /usr/bin/grep 68719476738 Assertion failed: ((TypesNeedLegalizing || getTypeAction(VT) == Legal) && "Illegal type introduced after type legalization?"), function HandleOp, file /Users/void/llvm/llvm.src/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp, line 493. 0 llc 0x0085392e char const* std::find<char const*, char>(char const*, char const*, char const&) + 98 1 llc 0x00853e63 llvm::sys::PrintStackTraceOnErrorSignal() + 593 2 libSystem.B.dylib 0x96cac09b _sigtramp + 43 3 libSystem.B.dylib 0xffffffff _sigtramp + 1765097359 4 libSystem.B.dylib 0x96d24ec2 raise + 26 5 libSystem.B.dylib 0x96d3447f abort + 73 6 libSystem.B.dylib 0x96d26063 __assert_rtn + 101 7 llc 0x004f9018 llvm::cast_retty<llvm::SubprogramDesc, llvm::DebugInfoDesc*>::ret_type llvm::cast<llvm::Sub ... llvm-svn: 61001
-
- Dec 13, 2008
-
-
Duncan Sands authored
types into the DAG if they were not already there. Check this with an assertion. llvm-svn: 60997
-
Mon P Wang authored
llvm-svn: 60975
-
Mon P Wang authored
llvm-svn: 60974
-
Duncan Sands authored
width register load followed by a truncating store for the copy, since the load will not place the value in the lower bits. Probably partial loads/stores can never happen here, but fix it anyway. llvm-svn: 60972
-
- Dec 12, 2008
-
-
Devang Patel authored
llvm-svn: 60965
-
Duncan Sands authored
use of illegal integer types: instead, use a stack slot and copying via integer registers. The existing code is still used if the bitconvert is to a legal integer type. This fires on the PPC testcases 2007-09-08-unaligned.ll and vec_misaligned.ll. It looks like equivalent code is generated with these changes, just permuted, but it's hard to tell. With these changes, nothing in LegalizeDAG produces illegal integer types anymore. This is a prerequisite for removing the LegalizeDAG type legalization code. While there I noticed that the existing code doesn't handle trunc store of f64 to f32: it turns this into an i64 store, which represents a 4 byte stack smash. I added a FIXME about this. Hopefully someone more motivated than I am will take care of it. llvm-svn: 60964
-
Evan Cheng authored
Fix add/sub expansion: don't create ADD / SUB with two results (seems like everyone is doing this these days :-). Patch by Daniel M Gessel! llvm-svn: 60958
-
Duncan Sands authored
do an extending load of the 4 bytes rather than a potentially illegal (type) i32 load followed by a sign extend. llvm-svn: 60945
-
Mon P Wang authored
Added support for TRUNC v8i16 to v8i8 for X86 (MMX) llvm-svn: 60916
-
Bill Wendling authored
ISD::ADD to emit an implicit EFLAGS. This was horribly broken. Instead, replace the intrinsic with an ISD::SADDO node. Then custom lower that into an X86ISD::ADD node with a associated SETCC that checks the correct condition code (overflow or carry). Then that gets lowered into the correct X86::ADDOvf instruction. Similar for SUB and MUL instructions. llvm-svn: 60915
-
- Dec 11, 2008
-
-
Mon P Wang authored
llvm-svn: 60869
-
Bill Wendling authored
llvm-svn: 60867
-
Mon P Wang authored
llvm-svn: 60866
-
Mon P Wang authored
vec_extract-sse4.ll. llvm-svn: 60865
-
Bill Wendling authored
llvm-svn: 60861
-
- Dec 10, 2008
-
-
Bill Wendling authored
them. The DAG combiner expects that nodes that are transformed have one value result. llvm-svn: 60857
-
Duncan Sands authored
for promoted integer types, eg: i16 on ppc-32, or i24 on any platform. Complete support for arbitrary precision integers would require handling expanded integer types, eg: i128, but I couldn't be bothered. llvm-svn: 60834
-
Mon P Wang authored
bit convert that changes the number of elements of a shuffle. llvm-svn: 60829
-
Evan Cheng authored
Fix MachineCodeEmitter to use uintptr_t instead of intptr_t. This avoids some overflow issues. Patch by Thomas Jablin. llvm-svn: 60828
-
Bill Wendling authored
llvm-svn: 60826
-
Bill Wendling authored
llvm-svn: 60818
-
Dan Gohman authored
node latencies. Use CalcLatency instead of manual code in CalculatePriorities to keep it consistent. Previously it computed slightly different results. llvm-svn: 60817
-
Evan Cheng authored
- Emit DW_AT_byte_size for struct and union of size zero. - Emit DW_AT_declaration for forward type declaration. llvm-svn: 60812
-
- Dec 09, 2008
-
-
Dan Gohman authored
The Cost field is removed. It was only being used in a very limited way, to indicate when the scheduler should attempt to protect a live register, and it isn't really needed to do that. If we ever want the scheduler to start inserting copies in non-prohibitive situations, we'll have to rethink some things anyway. A Latency field is added. Instead of giving each node a single fixed latency, each edge can have its own latency. This will eventually be used to model various micro-architecture properties more accurately. The PointerIntPair class and an internal union are now used, which reduce the overall size. llvm-svn: 60806
-
Dan Gohman authored
llvm-svn: 60804
-
Bill Wendling authored
target-independent way of determining overflow on multiplication. It's very tricky. Patch by Zoltan Varga! llvm-svn: 60800
-
Duncan Sands authored
essential problem was that the DAG can contain random unused nodes which were never analyzed. When remapping a value of a node being processed, such a node may become used and need to be analyzed; however due to operands being transformed during analysis the node may morph into a different one. Users of the morphing node need to be updated, and this wasn't happening. While there I added a bunch of documentation and sanity checks, so I (or some other poor soul) won't have to scratch their head over this stuff so long trying to remember how it was all supposed to work next time some obscure problem pops up! The extra sanity checking exposed a few places where invariants weren't being preserved, so those are fixed too. Since some of the sanity checking is expensive, I added a flag to turn it on. It is also turned on when building with ENABLE_EXPENSIVE_CHECKS=1. llvm-svn: 60797
-
Evan Cheng authored
llvm-svn: 60771
-
Dan Gohman authored
llvm-svn: 60769
-
Mon P Wang authored
one of its operand. llvm-svn: 60749
-
Mon P Wang authored
Fix the shift amount when unrolling a vector shift into scalar shifts. Fix problem in getShuffleScalarElt where it assumes that the input of a bit convert must be a vector. llvm-svn: 60740
-
Dan Gohman authored
pipeline model. llvm-svn: 60733
-
- Dec 08, 2008
-
-
Dan Gohman authored
llvm-svn: 60707
-
Dan Gohman authored
and use it in x86 address mode folding. Also, make getRegForValue return 0 for illegal types even if it has a ValueMap for them, because Argument values are put in the ValueMap. This fixes PR3181. llvm-svn: 60696
-