We overload ISD::FADD and quite a lot of others. Why not
ISD::ConstantFP too?
Fair enough, after pondering on it, I agree with you. The proposed
semantics are that a ConstantFP (and also a normal Constant?) produce
the splatted immediate value?
Constant sounds good too. And UNDEF,
On Jul 3, 2007, at 2:13 PM, Dan Gohman wrote:
We overload ISD::FADD and quite a lot of others. Why not
ISD::ConstantFP too?
Fair enough, after pondering on it, I agree with you. The proposed
semantics are that a ConstantFP (and also a normal Constant?) produce
the splatted immediate
On Jun 29, 2007, at 1:10 AM, Duncan Sands wrote:
Hi,
It seems like folding undef/X to undef isn't safe either though,
here is my understanding of how to fold undef. I hope it clarifies
this confusing area. Of course, I could be confused myself but I
hope not :)
(1) When is it OK to
On Jun 29, 2007, at 12:38 PM, Dan Gohman wrote:
Just as there isn't a special ADD node kind for vectors -- just
an ADD
kind with nodes that can have a vector ValueType, ConstantFP can
also
be vectorized. A ConstantFP with a vector ValueType is a vector
constant,
equivalent to what is
Duncan pointed out that I confused myself. If something is undef, we
can choose to pick any specific value for the undef to pick the
cancellation.
Thanks Chris and Duncan for explaining this. I'll submit a fix for the
DAGCombiner changes accordingly.
Dan
--
Dan Gohman, Cray Inc.
Just as there isn't a special ADD node kind for vectors -- just an ADD
kind with nodes that can have a vector ValueType, ConstantFP can also
be vectorized. A ConstantFP with a vector ValueType is a vector
constant,
equivalent to what is currently represented as a splat BUILD_VECTOR,
except
On Jun 28, 2007, at 3:09 AM, Duncan Sands wrote:
Hi,
It seems like folding undef/X to undef isn't safe either though,
with
the way it sounds like undef is intended to work. This code:
%x = udiv i32 undef, %intmax
%y = udiv i32 %x, 2
will always set %y to 0. Maybe instcombine can
On Jun 27, 2007, at 1:50 PM, Dan Gohman wrote:
I think that undef udiv intmax - 0, no? If not, plz update
instcombine as well.
intmax udiv intmax - 1.
It seems like folding undef/X to undef isn't safe either though,
with
the way it sounds like undef is intended to work. This code:
Index: llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
diff -u llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1.409 llvm/
lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1.410
--- llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1.409 Fri Jun 22
09:59:07 2007
+++
+
+ // If either operand is undef, the result is undef
+ if (N0.getOpcode() == ISD::UNDEF || N1.getOpcode() == ISD::UNDEF)
+return DAG.getNode(ISD::UNDEF, VT);
+
return SDOperand();
}
This is not safe for sdiv/udiv. Safe xforms are:
// undef / X - 0
// X / undef -
On Jun 27, 2007, at 7:59 AM, Dan Gohman wrote:
Index: llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
diff -u llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1.409 llvm/
lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1.410
--- llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1.409Fri Jun 22
I think that undef udiv intmax - 0, no? If not, plz update
instcombine as well.
intmax udiv intmax - 1.
It seems like folding undef/X to undef isn't safe either though, with
the way it sounds like undef is intended to work. This code:
%x = udiv i32 undef, %intmax
%y = udiv i32 %x, 2
I think that undef udiv intmax - 0, no? If not, plz update
instcombine as well.
intmax udiv intmax - 1.
It seems like folding undef/X to undef isn't safe either though, with
the way it sounds like undef is intended to work. This code:
%x = udiv i32 undef, %intmax
%y = udiv i32 %x, 2
dag combiner part
Another great change.
@@ -856,6 +844,10 @@
ConstantSDNode *N0C = dyn_castConstantSDNode(N0);
ConstantSDNode *N1C = dyn_castConstantSDNode(N1);
MVT::ValueType VT = N0.getValueType();
+
+ // fold vector ops
+ SDOperand FoldedVOp = SimplifyVBinOp(N);
+ if
Hi Chris,
Thanks for all the review comments! I've addressed a few comments
below; I'll get to the others soon.
@@ -1162,6 +1179,11 @@
SDOperand Op = BuildSDIV(N);
if (Op.Val) return Op;
}
+
+ // If either operand is undef, the result is undef
+ if (N0.getOpcode() ==
Thanks for all the review comments! I've addressed a few comments
below; I'll get to the others soon.
Thanks! I also filed pr1529, which is the only failure that showed
on the ppc nightly tester.
@@ -1162,6 +1179,11 @@
SDOperand Op = BuildSDIV(N);
if (Op.Val) return Op;
}
--- llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.500 Fri Jun 22
09:59:07 2007
+++ llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp Mon Jun 25
11:23:39 2007
@@ -173,15 +173,13 @@
+ /// ScalarizeVectorOp - Given an operand of vector type, convert
it into the
+ ///
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.313 - 1.314
---
Log message:
Xforms:
(add (select cc, 0, c), x) - (select cc, x, (add, x, c))
(sub x, (select cc, 0, c)) - (select cc, x, (sub, x, c))
---
Diffs of the changes: (+64 -0)
DAGCombiner.cpp | 64
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.312 - 1.313
ScheduleDAG.cpp updated: 1.125 - 1.126
SelectionDAG.cpp updated: 1.407 - 1.408
---
Log message:
Pass a SelectionDAG into SDNode::dump everywhere it's used, in prepration
for needing the DAG node to print
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.310 - 1.311
---
Log message:
tighten up recursion depth again
---
Diffs of the changes: (+13 -11)
DAGCombiner.cpp | 24 +---
1 files changed, 13 insertions(+), 11 deletions(-)
Index:
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.308 - 1.309
---
Log message:
prevent exponential recursion in isNegatibleForFree
---
Diffs of the changes: (+9 -6)
DAGCombiner.cpp | 15 +--
1 files changed, 9 insertions(+), 6 deletions(-)
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.309 - 1.310
---
Log message:
Fix a typo that caused combiner to create mal-formed pre-indexed store where
value store is the same as the base pointer.
---
Diffs of the changes: (+6 -6)
DAGCombiner.cpp | 12
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.307 - 1.308
---
Log message:
Qualify calls to getTypeForValueType with MVT:: too.
---
Diffs of the changes: (+3 -3)
DAGCombiner.cpp |6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
Index:
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.305 - 1.306
---
Log message:
Use a ptr set instead of a linear search to unique TokenFactor operands.
This fixes PR1423: http://llvm.org/PR1423
---
Diffs of the changes: (+13 -10)
DAGCombiner.cpp | 23
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.306 - 1.307
---
Log message:
Don't fold bitconvert(load) for preinc/postdec loads. Likewise stores.
---
Diffs of the changes: (+3 -1)
DAGCombiner.cpp |4 +++-
1 files changed, 3 insertions(+), 1
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.303 - 1.304
---
Log message:
Fix an infinite recursion in GetNegatedExpression.
---
Diffs of the changes: (+1 -1)
DAGCombiner.cpp |2 +-
1 files changed, 1 insertion(+), 1 deletion(-)
Index:
Fix an infinite recursion in GetNegatedExpression.
Doh, thanks a lot Lauro!
-Chris
---
Diffs of the changes: (+1 -1)
DAGCombiner.cpp |2 +-
1 files changed, 1 insertion(+), 1 deletion(-)
Index: llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
diff -u
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.304 - 1.305
---
Log message:
Bug fix: should check ABI alignment, not pref. alignment.
---
Diffs of the changes: (+2 -2)
DAGCombiner.cpp |4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
Index:
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.302 - 1.303
---
Log message:
implement a simple fneg optimization/propagation thing. This compiles:
CodeGen/PowerPC/fneg.ll into:
_t4:
fmul f0, f3, f4
fmadd f1, f1, f2, f0
blr
instead of:
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.301 - 1.302
---
Log message:
Can't fold the bit_convert is the store is a truncating store.
---
Diffs of the changes: (+2 -2)
DAGCombiner.cpp |4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.299 - 1.300
---
Log message:
Enable a couple of xforms:
- (store (bitconvert v)) - (store v) if resultant store does not require
higher alignment
- (bitconvert (load v)) - (load (bitconvert*)v) if resultant load
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.300 - 1.301
---
Log message:
Forgot a check.
---
Diffs of the changes: (+1 -1)
DAGCombiner.cpp |2 +-
1 files changed, 1 insertion(+), 1 deletion(-)
Index: llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.298 - 1.299
---
Log message:
Don't create indexed load / store with zero offset!
---
Diffs of the changes: (+8 -0)
DAGCombiner.cpp |8
1 files changed, 8 insertions(+)
Index:
Doh. Brain cramp.
Evan
On Apr 30, 2007, at 9:39 PM, Chris Lattner wrote:
+bool HasUses = false;
+SmallVectorMVT::ValueType, 2 VTs;
+for (unsigned i = 0, e = N-getNumValues(); i != e; ++i) {
+ if (!N-hasNUsesOfValue(0, i)) {
+HasUses = true;
+break;
+
Forgot about chain result; also UNDEF cannot have multiple values.
Nice! Thanks Evan,
-Chris
---
Diffs of the changes: (+12 -12)
DAGCombiner.cpp | 24
1 files changed, 12 insertions(+), 12 deletions(-)
Index: llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.296 - 1.297
---
Log message:
* Only turn a load to UNDEF if all of its outputs have no uses (indexed loads
produce two results.)
* Do not touch volatile loads.
---
Diffs of the changes: (+20 -5)
+bool HasUses = false;
+SmallVectorMVT::ValueType, 2 VTs;
+for (unsigned i = 0, e = N-getNumValues(); i != e; ++i) {
+ if (!N-hasNUsesOfValue(0, i)) {
+HasUses = true;
+break;
+ }
+ VTs.push_back(N-getValueType(i));
+}
+if (!HasUses) {
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.293 - 1.294
SelectionDAG.cpp updated: 1.398 - 1.399
SelectionDAGISel.cpp updated: 1.421 - 1.422
---
Log message:
add support for alignment attributes on load/store instructions
---
Diffs of the changes: (+79
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.294 - 1.295
SelectionDAG.cpp updated: 1.399 - 1.400
SelectionDAGISel.cpp updated: 1.422 - 1.423
---
Log message:
Revert Christopher Lamb's load/store alignment changes.
---
Diffs of the changes: (+36 -79)
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.290 - 1.291
---
Log message:
SIGN_EXTEND_INREG does not demand its top bits. Give SimplifyDemandedBits
a chance to hack on it. This compiles:
int baz(long long a) { return (short)(((int)(a 24)) 9); }
into:
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.291 - 1.292
---
Log message:
When replacing a node in SimplifyDemandedBits, if the old node used any
single-use nodes, they will be dead soon. Make sure to remove them before
processing other nodes. This
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.292 - 1.293
---
Log message:
allow SRL to simplify its operands, as it doesn't demand all bits as input.
---
Diffs of the changes: (+7 -1)
DAGCombiner.cpp |8 +++-
1 files changed, 7 insertions(+), 1
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.287 - 1.288
---
Log message:
don't create shifts by zero, fix some problems with my previous patch
---
Diffs of the changes: (+7 -3)
DAGCombiner.cpp | 10 +++---
1 files changed, 7 insertions(+), 3
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.288 - 1.289
---
Log message:
Fix this harder.
---
Diffs of the changes: (+19 -12)
DAGCombiner.cpp | 31 +++
1 files changed, 19 insertions(+), 12 deletions(-)
Index:
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.289 - 1.290
---
Log message:
fix an infinite loop compiling ldecod, notice by JeffC.
---
Diffs of the changes: (+1 -1)
DAGCombiner.cpp |2 +-
1 files changed, 1 insertion(+), 1 deletion(-)
Index:
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.285 - 1.286
---
Log message:
Codegen integer abs more efficiently using the trick from the PPC CWG. This
improves codegen on many architectures. Tests committed as CodeGen/*/iabs.ll
X86 Old:
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.286 - 1.287
---
Log message:
Teach the codegen to turn [aez]ext (setcc) - selectcc of 1/0, which often
allows other simplifications. For example, this compiles:
int isnegative(unsigned int X) {
return !(X
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.284 - 1.285
LegalizeDAG.cpp updated: 1.485 - 1.486
---
Log message:
1. Insert custom lowering hooks for ISD::ROTR and ISD::ROTL.
2. Help DAGCombiner recognize zero/sign/any-extended versions of ROTR and ROTL
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.283 - 1.284
SelectionDAG.cpp updated: 1.393 - 1.394
---
Log message:
Fix incorrect combination of different loads. Reenable zext-over-truncate
combination.
---
Diffs of the changes: (+71 -75)
DAGCombiner.cpp
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.282 - 1.283
---
Log message:
Disable load width reduction xform of variant (zext (truncate load x)) for
big endian targets until llvm-gcc build issue has been resolved.
---
Diffs of the changes: (+3 -1)
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.281 - 1.282
---
Log message:
SIGN_EXTEND_INREG requires one extra operand, a ValueType node.
---
Diffs of the changes: (+6 -2)
DAGCombiner.cpp |8 ++--
1 files changed, 6 insertions(+), 2 deletions(-)
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.278 - 1.279
---
Log message:
Also replace uses of SRL if that's also folded during ReduceLoadWidth().
---
Diffs of the changes: (+8 -1)
DAGCombiner.cpp |9 -
1 files changed, 8 insertions(+), 1
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.279 - 1.280
---
Log message:
Make sure SEXTLOAD of the specific type is supported on the target.
---
Diffs of the changes: (+4 -0)
DAGCombiner.cpp |4
1 files changed, 4 insertions(+)
Index:
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.280 - 1.281
---
Log message:
Adjust offset to compensate for big endian machines.
---
Diffs of the changes: (+5 -7)
DAGCombiner.cpp | 12 +---
1 files changed, 5 insertions(+), 7 deletions(-)
Index:
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.277 - 1.278
---
Log message:
A couple of bug fixes for reducing load width xform:
1. Address offset is in bytes.
2. Make sure truncate node uses are replaced with new load.
---
Diffs of the changes: (+16 -7)
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.275 - 1.276
---
Log message:
fold (truncate (srl (load x), c)) - (smaller load (x+c/vt bits))
---
Diffs of the changes: (+24 -6)
DAGCombiner.cpp | 30 --
1 files changed, 24
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.276 - 1.277
---
Log message:
More opportunities to reduce load size.
---
Diffs of the changes: (+101 -45)
DAGCombiner.cpp | 146 ++--
1 files changed, 101
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.271 - 1.272
---
Log message:
canonicalize constants to the RHS of addc/adde. If nothing uses the carry out
of
addc, turn it into add.
This allows us to compile:
long long test(long long A, unsigned B) {
return
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.272 - 1.273
---
Log message:
generalize
---
Diffs of the changes: (+9 -5)
DAGCombiner.cpp | 14 +-
1 files changed, 9 insertions(+), 5 deletions(-)
Index:
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.273 - 1.274
SelectionDAG.cpp updated: 1.392 - 1.393
---
Log message:
fold away addc nodes when we know there cannot be a carry-out.
---
Diffs of the changes: (+28 -8)
DAGCombiner.cpp | 35
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.270 - 1.271
---
Log message:
Fold (sext (truncate x)) more aggressively, by avoiding creation of a
sextinreg if not needed. This is useful in two cases: before legalize,
it avoids creating a sextinreg that will be
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.268 - 1.269
---
Log message:
Fix for PR1108: http://llvm.org/PR1108 : type of insert_vector_elt index
operand is PtrVT, not MVT::i32.
---
Diffs of the changes: (+4 -3)
DAGCombiner.cpp |7 ---
1 files
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.267 - 1.268
---
Log message:
Remove this xform:
(shl (add x, c1), c2) - (add (shl x, c2), c1c2)
Replace it with:
(add (shl (add x, c1), c2), ) - (add (add (shl x, c2), c1c2), )
This fixes test/CodeGen/ARM/smul.ll
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.265 - 1.266
---
Log message:
add options to view the dags before the first or second pass of dag combine.
---
Diffs of the changes: (+18 -0)
DAGCombiner.cpp | 18 ++
1 files changed, 18
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.266 - 1.267
---
Log message:
Fix PR1114: http://llvm.org/PR1114 and
CodeGen/Generic/2007-01-15-LoadSelectCycle.ll by being
careful when folding c ? load p : load q that C doesn't reach either load.
If so, folding
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.264 - 1.265
---
Log message:
Implement some trivial FP foldings when -enable-unsafe-fp-math is specified.
This implements CodeGen/PowerPC/unsafe-math.ll
---
Diffs of the changes: (+15 -0)
DAGCombiner.cpp | 15
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.263 - 1.264
ScheduleDAGList.cpp updated: 1.70 - 1.71
---
Log message:
Eliminate static ctors from Statistics
---
Diffs of the changes: (+6 -12)
DAGCombiner.cpp | 12
ScheduleDAGList.cpp |
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.261 - 1.262
---
Log message:
This code was usurping the sextload expand in teh legalizer. Just make
sure the right conditions are checked.
---
Diffs of the changes: (+9 -7)
DAGCombiner.cpp | 16
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.259 - 1.260
---
Log message:
Don't convert store double C, Ptr to store long C, Ptr if i64 is not a legal
type.
---
Diffs of the changes: (+12 -9)
DAGCombiner.cpp | 21 -
1 files changed,
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.260 - 1.261
---
Log message:
make this code more aggressive about turning store fpimm into store int imm.
This is not sufficient to fix X86/store-fp-constant.ll
---
Diffs of the changes: (+32 -9)
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.256 - 1.257
LegalizeDAG.cpp updated: 1.421 - 1.422
ScheduleDAG.cpp updated: 1.111 - 1.112
ScheduleDAGList.cpp updated: 1.69 - 1.70
ScheduleDAGRRList.cpp updated: 1.22 - 1.23
ScheduleDAGSimple.cpp updated: 1.19 - 1.20
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.257 - 1.258
---
Log message:
Fix CodeGen/PowerPC/2006-12-07-SelectCrash.ll on PPC64
---
Diffs of the changes: (+4 -1)
DAGCombiner.cpp |5 -
1 files changed, 4 insertions(+), 1 deletion(-)
Index:
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.255 - 1.256
ScheduleDAGList.cpp updated: 1.68 - 1.69
---
Log message:
Detemplatize the Statistic class. The only type it is instantiated with
is 'unsigned'.
---
Diffs of the changes: (+5 -5)
DAGCombiner.cpp
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.254 - 1.255
---
Log message:
For better or worse, load from i1 is assumed to be zero extended. Do not
form a load from i1 from larger loads that may not be zext'd.
---
Diffs of the changes: (+6 -1)
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.252 - 1.253
SelectionDAG.cpp updated: 1.373 - 1.374
---
Log message:
Fix an incorrectly inverted condition.
---
Diffs of the changes: (+1 -2)
DAGCombiner.cpp |2 +-
SelectionDAG.cpp |1 -
2 files
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.247 - 1.248
---
Log message:
When forming a pre-indexed store, make sure ptr isn't the same or is a pred of
value being stored. It would cause a cycle.
---
Diffs of the changes: (+16 -7)
DAGCombiner.cpp | 23
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.248 - 1.249
---
Log message:
Fix a dag combiner bug exposed by my recent instcombine patch. This fixes
CodeGen/Generic/2006-11-10-DAGCombineMiscompile.ll and PPC gsm/toast
---
Diffs of the changes: (+1 -1)
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.249 - 1.250
---
Log message:
move big chunks of code out-of-line, no functionality change.
---
Diffs of the changes: (+241 -235)
DAGCombiner.cpp | 476
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.250 - 1.251
---
Log message:
reduce indentation by using early exits. No functionality change.
---
Diffs of the changes: (+163 -156)
DAGCombiner.cpp | 319
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.245 - 1.246
SelectionDAG.cpp updated: 1.371 - 1.372
---
Log message:
Rename ISD::MemOpAddrMode to ISD::MemIndexedMode
---
Diffs of the changes: (+11 -9)
DAGCombiner.cpp |4 ++--
SelectionDAG.cpp | 16
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.246 - 1.247
---
Log message:
Don't attempt expensive pre-/post- indexed dag combine if target does not
support them.
---
Diffs of the changes: (+18 -1)
DAGCombiner.cpp | 19 ++-
1 files
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.241 - 1.242
---
Log message:
- When performing pre-/post- indexed load/store transformation, do not worry
about whether the new base ptr would be live below the load/store. Let two
address pass split it back to
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.242 - 1.243
SelectionDAG.cpp updated: 1.370 - 1.371
---
Log message:
Remove redundant cmath.
---
Diffs of the changes: (+0 -2)
DAGCombiner.cpp |1 -
SelectionDAG.cpp |1 -
2 files changed, 2
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.243 - 1.244
---
Log message:
Match more post-indexed ops.
---
Diffs of the changes: (+6 -2)
DAGCombiner.cpp |8 ++--
1 files changed, 6 insertions(+), 2 deletions(-)
Index:
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.244 - 1.245
---
Log message:
getPostIndexedAddressParts change: passes in load/store instead of its loaded /
stored VT.
---
Diffs of the changes: (+1 -3)
DAGCombiner.cpp |4 +---
1 files changed, 1
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.238 - 1.239
---
Log message:
Add post-indexed load / store transformations.
---
Diffs of the changes: (+199 -50)
DAGCombiner.cpp | 249
1 files changed,
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.239 - 1.240
---
Log message:
Fix a obscure post-indexed load / store dag combine bug.
---
Diffs of the changes: (+1 -1)
DAGCombiner.cpp |2 +-
1 files changed, 1 insertion(+), 1 deletion(-)
Index:
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.240 - 1.241
---
Log message:
Fixed a minor bug preventing some pre-indexed load / store transformation.
---
Diffs of the changes: (+3 -3)
DAGCombiner.cpp |6 +++---
1 files changed, 3 insertions(+), 3
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.237 - 1.238
---
Log message:
Add comment.
---
Diffs of the changes: (+10 -4)
DAGCombiner.cpp | 14 ++
1 files changed, 10 insertions(+), 4 deletions(-)
Index:
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.235 - 1.236
---
Log message:
Added pre-indexed store support.
---
Diffs of the changes: (+24 -10)
DAGCombiner.cpp | 34 --
1 files changed, 24 insertions(+), 10 deletions(-)
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.236 - 1.237
SelectionDAG.cpp updated: 1.369 - 1.370
---
Log message:
Unbreak VC++ build.
---
Diffs of the changes: (+9 -9)
DAGCombiner.cpp |2 +-
SelectionDAG.cpp | 16
2 files changed, 9
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.231 - 1.232
LegalizeDAG.cpp updated: 1.415 - 1.416
ScheduleDAGRRList.cpp updated: 1.17 - 1.18
ScheduleDAGSimple.cpp updated: 1.18 - 1.19
SelectionDAG.cpp updated: 1.364 - 1.365
SelectionDAGISel.cpp updated: 1.314 -
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.232 - 1.233
---
Log message:
Added DAG combiner transformation to generate pre-indexed loads.
---
Diffs of the changes: (+112 -0)
DAGCombiner.cpp | 112
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.233 - 1.234
---
Log message:
Remove dead variable. Fix 80 column violations.
---
Diffs of the changes: (+3 -3)
DAGCombiner.cpp |6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
Index:
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.234 - 1.235
---
Log message:
Rename
---
Diffs of the changes: (+1 -1)
DAGCombiner.cpp |2 +-
1 files changed, 1 insertion(+), 1 deletion(-)
Index: llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
diff -u
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.230 - 1.231
---
Log message:
Add option for controlling inclusion of global AA.
---
Diffs of the changes: (+12 -6)
DAGCombiner.cpp | 18 --
1 files changed, 12 insertions(+), 6 deletions(-)
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.226 - 1.227
---
Log message:
Make sure operand does have size and element type operands.
---
Diffs of the changes: (+2 -1)
DAGCombiner.cpp |3 ++-
1 files changed, 2 insertions(+), 1 deletion(-)
Index:
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.227 - 1.228
SelectionDAG.cpp updated: 1.352 - 1.353
SelectionDAGPrinter.cpp updated: 1.38 - 1.39
---
Log message:
Make it simplier to dump DAGs while in DAGCombiner. Remove a nasty
optimization.
---
Diffs of the
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.228 - 1.229
---
Log message:
Fix CodeGen/PowerPC/2006-10-17-brcc-miscompile.ll
---
Diffs of the changes: (+1 -1)
DAGCombiner.cpp |2 +-
1 files changed, 1 insertion(+), 1 deletion(-)
Index:
Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.224 - 1.225
SelectionDAGISel.cpp updated: 1.288 - 1.289
---
Log message:
Pass AliasAnalysis thru to DAGCombiner.
---
Diffs of the changes: (+18 -6)
DAGCombiner.cpp | 15 +++
1 - 100 of 225 matches
Mail list logo