| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
User::dropHungOffUses().
llvm-svn: 123580
|
|
|
|
|
|
|
| |
static_cast from Constant* to Value* has to adjust the "this" pointer.
This is groundwork for PR889.
llvm-svn: 123435
|
|
|
|
|
|
| |
every BranchInst has a fixed number of operands.
llvm-svn: 123027
|
|
|
|
| |
llvm-svn: 122809
|
|
|
|
|
|
|
| |
new gcc warning that complains on self-assignments and
self-initializations.
llvm-svn: 122458
|
|
|
|
|
|
|
|
| |
out-of-bounds indexing.
Also add asserts that the indices are valid in InsertValueInst::init(). ExtractValueInst already asserts when constructed with invalid indices.
llvm-svn: 120956
|
|
|
|
| |
llvm-svn: 119463
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
class, uses DominatorTree which is an analysis. This change moves all of
the tricky hasConstantValue logic to SimplifyInstruction, and replaces it
with a very simple literal implementation. I already taught users of
hasConstantValue that need tricky stuff to use SimplifyInstruction instead.
I didn't update InlineFunction because the IR looks like it might be in a
funky state at the point it calls hasConstantValue, which makes calling
SimplifyInstruction dangerous since it can in theory do a lot of tricky
reasoning. This may be a pessimization, for example in the case where
all phi node operands are either undef or a fixed constant.
llvm-svn: 119459
|
|
|
|
|
|
| |
it to get better phi node simplification.
llvm-svn: 119055
|
|
|
|
| |
llvm-svn: 115453
|
|
|
|
| |
llvm-svn: 115251
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The x86_mmx type is used for MMX intrinsics, parameters and
return values where these use MMX registers, and is also
supported in load, store, and bitcast.
Only the above operations generate MMX instructions, and optimizations
do not operate on or produce MMX intrinsics.
MMX-sized vectors <2 x i32> etc. are lowered to XMM or split into
smaller pieces. Optimizations may occur on these forms and the
result casted back to x86_mmx, provided the result feeds into a
previous existing x86_mmx operation.
The point of all this is prevent optimizations from introducing
MMX operations, which is unsafe due to the EMMS problem.
llvm-svn: 115243
|
|
|
|
| |
llvm-svn: 114828
|
|
|
|
|
|
| |
catch bad shufflevector operations when they are created, rather than waiting for someone to notice later on.
llvm-svn: 110986
|
|
|
|
|
|
|
|
|
| |
anyway
as a positive consequence the CallSite::getCallee() methods now can be rewritten to be
a bit more efficient
llvm-svn: 110380
|
|
|
|
|
|
|
|
|
| |
alloca instructions (constrained by their internal encoding),
and add error checking for it. Fix an instcombine bug which
generated huge alignment values (null is infinitely aligned).
This fixes undefined behavior noticed by John Regehr.
llvm-svn: 109643
|
|
|
|
| |
llvm-svn: 108522
|
|
|
|
| |
llvm-svn: 108130
|
|
|
|
|
|
| |
is involved.
llvm-svn: 108117
|
|
|
|
|
|
| |
by Hans Vandierendonck from PR7605
llvm-svn: 108116
|
|
|
|
|
|
| |
work even if CallInst::op_* are private
llvm-svn: 107390
|
|
|
|
|
|
|
|
|
| |
in terms of Op<> and ArgOffset. This works for
values of {0, 1} for ArgOffset.
Please note that ArgOffset will become 0 soon and
will go away eventually.
llvm-svn: 107129
|
|
|
|
|
|
| |
SmallVector, and other SmallVector simplifications.
llvm-svn: 106452
|
|
|
|
|
|
| |
as is done with most other cast opcode predicates.
llvm-svn: 105008
|
|
|
|
|
|
| |
This will help reduce the amount of casting required on 64-bit targets.
llvm-svn: 104911
|
|
|
|
|
|
|
|
| |
to fadd, fsub, and fmul, when used with a floating-point type. LLVM
has supported the new instructions since 2.6, so it's time to get
on board.
llvm-svn: 102971
|
|
|
|
|
|
|
| |
Probably the best way to know that all getOperand() calls have been handled
is to replace that API instead of updating.
llvm-svn: 101579
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
with a fix for self-hosting
rotate CallInst operands, i.e. move callee to the back
of the operand array
the motivation for this patch are laid out in my mail to llvm-commits:
more efficient access to operands and callee, faster callgraph-construction,
smaller compiler binary
llvm-svn: 101465
|
|
|
|
| |
llvm-svn: 101434
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
with a fix
rotate CallInst operands, i.e. move callee to the back
of the operand array
the motivation for this patch are laid out in my mail to llvm-commits:
more efficient access to operands and callee, faster callgraph-construction,
smaller compiler binary
llvm-svn: 101397
|
|
|
|
| |
llvm-svn: 101368
|
|
|
|
|
|
|
|
|
|
| |
of the operand array
the motivation for this patch are laid out in my mail to llvm-commits:
more efficient access to operands and callee, faster callgraph-construction,
smaller compiler binary
llvm-svn: 101364
|
|
|
|
|
|
| |
be used in ImmutableCallSite too.
llvm-svn: 101292
|
|
|
|
| |
llvm-svn: 100720
|
|
|
|
|
|
|
|
|
| |
is necessary. Inherits from new templated baseclass CallSiteBase<>
which is highly customizable. Base CallSite on it too, in a configuration
that allows full mutation.
Adapt some call sites in analyses to employ ImmutableCallSite.
llvm-svn: 100100
|
|
|
|
|
|
| |
instead of InlineFunction.
llvm-svn: 99483
|
|
|
|
| |
llvm-svn: 99451
|
|
|
|
|
|
|
|
|
|
|
|
| |
I have audited all getOperandNo calls now, fixing
hidden assumptions. CallSite related uglyness will
be eliminated successively.
Note this patch has a long and griveous history,
for all the back-and-forths have a look at
CallSite.h's log.
llvm-svn: 99399
|
|
|
|
|
|
|
|
| |
for the noinline attribute, and make the inliner refuse to
inline a call site when the call site is marked noinline even
if the callee isn't. This fixes PR6682.
llvm-svn: 99341
|
|
|
|
| |
llvm-svn: 99275
|
|
|
|
| |
llvm-svn: 99171
|
|
|
|
|
|
| |
we can reapply the InvokeInst operand reordering patch. (see r98957).
llvm-svn: 99170
|
|
|
|
|
|
| |
http://smooshlab.apple.com:8010/builders/clang-x86_64-darwin10-fnt/builds/703 in the nightly test suite
llvm-svn: 98958
|
|
|
|
|
|
|
|
|
|
|
| |
This time I did a self-hosted bootstrap on Linux x86-64,
with no problems. Let's see how darwin 64-bit self-hosting
goes. At the first sign of failure I'll back this out.
Maybe the valgrind bots give me a hint of what may be wrong
(it at all).
llvm-svn: 98957
|
|
|
|
|
|
|
| |
and T->isPointerTy(). Convert most instances of the first form to the second form.
Requested by Chris.
llvm-svn: 96344
|
|
|
|
|
|
| |
isInteger, we now have isFloatTy and isIntegerTy. Requested by Chris!
llvm-svn: 96223
|
|
|
|
| |
llvm-svn: 95086
|
|
|
|
|
|
|
|
| |
llvm-as: t.ll:1:25: error: invalid cast opcode for cast from '[4 x i8]' to '[1 x i32]'
@x = constant [1 x i32] bitcast ([4 x i8] c"abcd" to [1 x i32])
^
llvm-svn: 94595
|
|
|
|
|
|
| |
in the case of empty and full ranges.
llvm-svn: 94548
|
|
|
|
| |
llvm-svn: 94281
|