| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 95017
|
| |
|
|
| |
llvm-svn: 95012
|
| |
|
|
|
|
|
|
|
| |
disabled by default. This divides the existing load PRE code into 2 phases:
first it checks that it is safe to move the load to each of the predecessors
where it is unavailable, and then if it is safe, the code is changed to move
the load. Radar 7571861.
llvm-svn: 95007
|
| |
|
|
| |
llvm-svn: 95001
|
| |
|
|
|
|
| |
into 80 columns to match my artistic preferences.
llvm-svn: 95000
|
| |
|
|
| |
llvm-svn: 94997
|
| |
|
|
| |
llvm-svn: 94996
|
| |
|
|
| |
llvm-svn: 94995
|
| |
|
|
|
|
| |
evaluateICmpRelation wasn't handling blockaddress.
llvm-svn: 94993
|
| |
|
|
|
|
|
|
| |
type is the same as the element type of the vector. EXTRACT_VECTOR_ELT can
be used to extended the width of an integer type. This fixes a bug for
Generic/vector-casts.ll on a ppc750.
llvm-svn: 94990
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
cases, and implement target-independent folding rules for alignof and
offsetof. Also, reassociate reassociative operators when it leads to
more folding.
Generalize ScalarEvolution's isOffsetOf to recognize offsetof on
arrays. Rename getAllocSizeExpr to getSizeOfExpr, and getFieldOffsetExpr
to getOffsetOfExpr, for consistency with analagous ConstantExpr routines.
Make the target-dependent folder promote GEP array indices to
pointer-sized integers, to make implicit casting explicit and exposed
to subsequent folding.
And add a bunch of testcases for this new functionality, and a bunch
of related existing functionality.
llvm-svn: 94987
|
| |
|
|
|
|
|
|
|
| |
of objc message send was getting marked arm_apcscc, but the prototype
isn't. This is fine at runtime because objcmsgsend is implemented in
assembly. Only turn a mismatched caller and callee into 'unreachable'
if the callee is a definition.
llvm-svn: 94986
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
case, instcombine can't zap the invoke for fear of changing the CFG.
However, we have to do something to prevent the next iteration of
instcombine from inserting another store -> undef before the invoke
thereby getting into infinite iteration between dead store elim and
store insertion.
Just zap the callee to null, which will prevent the next iteration
from doing anything.
llvm-svn: 94985
|
| |
|
|
|
|
|
| |
The testcase from pr6198 does not crash for me -- I don't know what's up with
that -- so I'm not adding it to the tests.
llvm-svn: 94984
|
| |
|
|
| |
llvm-svn: 94982
|
| |
|
|
|
|
|
| |
array types as well as struct types, and which accepts arbitrary
Constant indicies.
llvm-svn: 94981
|
| |
|
|
|
|
| |
fixes PR6192
llvm-svn: 94977
|
| |
|
|
| |
llvm-svn: 94970
|
| |
|
|
| |
llvm-svn: 94969
|
| |
|
|
| |
llvm-svn: 94955
|
| |
|
|
|
|
| |
TCRETURN's. Otherwise the missing uses can make post-regalloc scheduling do bad things. This fixes 403.gcc.
llvm-svn: 94950
|
| |
|
|
| |
llvm-svn: 94949
|
| |
|
|
| |
llvm-svn: 94946
|
| |
|
|
| |
llvm-svn: 94945
|
| |
|
|
| |
llvm-svn: 94943
|
| |
|
|
|
|
| |
use and X is free to negate.
llvm-svn: 94941
|
| |
|
|
|
|
|
|
| |
to the TargetAsmLexer class so that clients can
actually use the TargetAsmLexer they get from a
Target.
llvm-svn: 94940
|
| |
|
|
|
|
| |
longjmp and it doesn't make much sense for performance reason. If my logic is faulty, please let me know.
llvm-svn: 94937
|
| |
|
|
|
|
| |
right reload order
llvm-svn: 94915
|
| |
|
|
| |
llvm-svn: 94914
|
| |
|
|
|
|
|
|
|
| |
Even if they are suported by the core, they can be disabled
(this is just a configuration bit inside some register).
Allow unaligned memops on darwin and conservatively disallow them otherwise.
llvm-svn: 94889
|
| |
|
|
|
|
|
| |
unconditionally. Besides checking the offset, also check that the underlying
object is aligned as much as the load itself.
llvm-svn: 94875
|
| |
|
|
|
|
| |
registers.
llvm-svn: 94873
|
| |
|
|
| |
llvm-svn: 94872
|
| |
|
|
| |
llvm-svn: 94870
|
| |
|
|
|
|
|
|
|
|
|
|
| |
something totally broken and parsing them as immediates, but the .td file also
had the wrong match class so things sortof worked. Except, that is, that we
would parse
movl $0, %eax
as
movl 0, %eax
Feel free to guess how well that worked.
llvm-svn: 94869
|
| |
|
|
| |
llvm-svn: 94866
|
| |
|
|
| |
llvm-svn: 94863
|
| |
|
|
| |
llvm-svn: 94861
|
| |
|
|
|
|
| |
register, and use to cleanup a FIXME in X86AsmParser.cpp.
llvm-svn: 94859
|
| |
|
|
|
|
|
|
|
|
|
| |
AllUsesOfValueWillTrapIfNull().
This bug was exposed by my inliner cost changes in r94615, and caused failures
of lencod on most architectures when building with LTO.
This patch fixes lencod and 464.h264ref on x86-64 (and likely others).
llvm-svn: 94858
|
| |
|
|
|
|
|
| |
bit (Inst{22}) and the M bit (Inst{5}) should be left unspecified. For binary
format instructions, Inst{6} and Inst{4} need to specified for proper decodings.
llvm-svn: 94855
|
| |
|
|
|
|
| |
them from values that are not actually defined in the module.
llvm-svn: 94854
|
| |
|
|
| |
llvm-svn: 94853
|
| |
|
|
|
|
|
|
|
|
| |
create a testcase where this matters. The select+load transformation only
occurs when isSafeToLoadUnconditionally is true, and in those situations,
instcombine also changes the underlying objects to be aligned. This seems
like a good idea regardless, and I've verified that it doesn't pessimize
the subsequent realignment.
llvm-svn: 94850
|
| |
|
|
| |
llvm-svn: 94843
|
| |
|
|
|
|
| |
been erased (making it not have any more function-local operands)
llvm-svn: 94842
|
| |
|
|
| |
llvm-svn: 94841
|
| |
|
|
| |
llvm-svn: 94835
|
| |
|
|
|
|
|
| |
indices are safe if the result is known to be within the bounds of the
underlying object.
llvm-svn: 94829
|