- Oct 23, 2005
-
-
Jeff Cohen authored
pointer marking the end of the list, the zero *must* be cast to the pointer type. An un-cast zero is a 32-bit int, and at least on x86_64, gcc will not extend the zero to 64 bits, thus allowing the upper 32 bits to be random junk. The new END_WITH_NULL macro may be used to annotate a such a function so that GCC (version 4 or newer) will detect the use of un-casted zero at compile time. llvm-svn: 23888
-
Andrew Lenharth authored
llvm-svn: 23886
-
- Oct 22, 2005
-
-
Chris Lattner authored
the input is that type, this caused a failure on gs on X86 last night. Move the hard checks into Build[US]Div since that is where decisions like this should be made. llvm-svn: 23881
-
- Oct 21, 2005
-
-
Chris Lattner authored
2005-10-21-longlonggtu.ll. llvm-svn: 23875
-
Chris Lattner authored
For example, we can now join things like [0-30:0)[31-40:1)[52-59:2) with [40:60:0) if the 52-59 range is defined by a copy from the 40-60 range. The resultant range ends up being [0-30:0)[31-60:1). This fires a lot through-out the test suite (e.g. shrinking bc from 19492 -> 18509 machineinstrs) though most gains are smaller (e.g. about 50 copies eliminated from crafty). llvm-svn: 23866
-
Chris Lattner authored
(an unused method). Fix the merger so that it can merge ranges like this [10:12)[16:40) with [12:38) into [10:40) instead of bogus ranges. This sort of input will be possible for the merger coming shortly llvm-svn: 23865
-
Nate Begeman authored
llvm-svn: 23856
-
Nate Begeman authored
Add a new flag to TargetLowering indicating if the target has really cheap signed division by powers of two, make ppc use it. This will probably go away in the future. Implement some more ISD::SDIV folds in the dag combiner Remove now dead code in the x86 backend. llvm-svn: 23853
-
Chris Lattner authored
Andrew for bringing this to my attn. llvm-svn: 23850
-
- Oct 20, 2005
-
-
Nate Begeman authored
for types that aren't legal, and fail a divisor is less than zero comparison, which would cause us to drop a subtract. llvm-svn: 23846
-
Chris Lattner authored
llvm-svn: 23845
-
Chris Lattner authored
llvm-svn: 23844
-
Chris Lattner authored
Fix a *bug* in the extendIntervalEndTo method. In particular, if adding [2:10) to an interval containing [0:2),[10:30), we produced [0:10),[10,30). Which is not the most smart thing to do. Now produce [0:30). llvm-svn: 23841
-
Chris Lattner authored
llvm-svn: 23839
-
Nate Begeman authored
that the nodes can be folded with other nodes, and we can not duplicate code in every backend. Alpha will probably want this too. llvm-svn: 23835
-
- Oct 19, 2005
-
-
Nate Begeman authored
the pair of elements is a legal type. llvm-svn: 23804
-
Nate Begeman authored
allows us to lower legal return types to something else, to meet ABI requirements (such as that i64 be returned in two i32 regs on Darwin/ppc). llvm-svn: 23802
-
Chris Lattner authored
sized stack object if either the array size or the type size is zero. llvm-svn: 23801
-
Chris Lattner authored
llvm-svn: 23797
-
- Oct 18, 2005
-
-
Chris Lattner authored
a lot throughout many programs. In particular, specfp triggers it a bunch for constant FP nodes when you have code like cond ? 1.0 : -1.0. If the PPC ISel exposed the loads implicit in pic references to external globals, we would be able to eliminate a load in cases like this as well: %X = external global int %Y = external global int int* %test4(bool %C) { %G = select bool %C, int* %X, int* %Y ret int* %G } Note that this breaks things that use SrcValue's (see the fixme), but since nothing uses them yet, this is ok. Also, simplify some code to use hasOneUse() on an SDOperand instead of hasNUsesOfValue directly. llvm-svn: 23781
-
Nate Begeman authored
llvm-svn: 23777
-
Nate Begeman authored
llvm-svn: 23776
-
- Oct 17, 2005
-
-
Nate Begeman authored
llvm-svn: 23774
-
Chris Lattner authored
llvm-svn: 23764
-
- Oct 16, 2005
-
-
Chris Lattner authored
llvm-svn: 23756
-
Chris Lattner authored
llvm-svn: 23755
-
- Oct 15, 2005
-
-
Chris Lattner authored
fixes a legalize failure on SPASS for itanium. llvm-svn: 23747
-
- Oct 14, 2005
-
-
Nate Begeman authored
popping up in Fourinarow. llvm-svn: 23722
-
Nate Begeman authored
you could be AND'ing with the result of a shift that shifts out all the bits you care about, in addition to a constant. Also, move over an add/sub_parts fold from legalize to the dag combiner, where it works for things other than constants. Woot! llvm-svn: 23720
-
Chris Lattner authored
llvm-svn: 23718
-
- Oct 13, 2005
-
-
Chris Lattner authored
llvm-svn: 23717
-
Chris Lattner authored
is also legal. Add support for ExpandOp'ing raw EXTLOADs too. llvm-svn: 23716
-
Chris Lattner authored
llvm-svn: 23715
-
Nate Begeman authored
the remainder of the failures introduced by my patch last night. llvm-svn: 23714
-
Chris Lattner authored
tests. llvm-svn: 23713
-
Nate Begeman authored
parts. This should fix the crafty and signed long long unit test failure on x86 last night. llvm-svn: 23711
-
Jim Laskey authored
minimize unnecessary spilling. llvm-svn: 23710
-
Nate Begeman authored
Kill some dead code. llvm-svn: 23706
-
Nate Begeman authored
out, where after the first CombineTo() call, the node the second CombineTo wishes to replace may no longer exist. Fix a very real bug with the truncated load optimization on little endian targets, which do not need a byte offset added to the load. llvm-svn: 23704
-
- Oct 12, 2005
-
-
Nate Begeman authored
like turning: _foo: fctiwz f0, f1 stfd f0, -8(r1) lwz r2, -4(r1) rlwinm r3, r2, 0, 16, 31 blr into _foo: fctiwz f0,f1 stfd f0,-8(r1) lhz r3,-2(r1) blr Also removed an unncessary constraint from sra -> srl conversion, which should take care of hte only reason we would ever need to handle sra in MaskedValueIsZero, AFAIK. llvm-svn: 23703
-