Sean Callanan
25ef2910a9
Updated to use the proper .exports file for the
...
target platform, depending on whether the target
supports the blocks API or not
llvm-svn: 95024
2010-02-01 23:01:38 +00:00
Bill Wendling
8a000012f2
Add "dump" method to IVUsersOneStride.
...
llvm-svn: 95022
2010-02-01 22:51:23 +00:00
Dale Johannesen
893435a736
Testcase for 94996 (PR 6157)
...
llvm-svn: 95021
2010-02-01 22:46:05 +00:00
Evan Cheng
efa391da81
Fix PR6196. GV callee may not be a function.
...
llvm-svn: 95017
2010-02-01 22:40:09 +00:00
Evan Cheng
b91a142542
Add test case for 95013.
...
llvm-svn: 95014
2010-02-01 22:32:42 +00:00
Mon P Wang
65b01b6ce7
Improve EXTRACT_VECTOR_ELT patch based on comments from Duncan
...
llvm-svn: 95012
2010-02-01 22:15:09 +00:00
Sean Callanan
ba52e5e86a
Rollback on including blocks functionality in .exports
...
because some platforms don't support blocks and then
break because the symbols aren't present
llvm-svn: 95011
2010-02-01 21:57:50 +00:00
Bob Wilson
1f966e8ca6
Add an option to GVN to remove all partially redundant loads. This is currently
...
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
2010-02-01 21:17:14 +00:00
Duncan Sands
4db1f01c24
Do an early exit when the result is known cheaply.
...
llvm-svn: 95002
2010-02-01 20:57:35 +00:00
Chris Lattner
af2e10ddef
eliminate a bunch of pointless LLVMContext arguments.
...
llvm-svn: 95001
2010-02-01 20:48:08 +00:00
Duncan Sands
6737709951
Fix typo "of" -> "or" and change the way a line was formatted to fit
...
into 80 columns to match my artistic preferences.
llvm-svn: 95000
2010-02-01 20:42:02 +00:00
Chris Lattner
18e6b4eb6b
fix PR6195, a bug constant folding scalar -> vector compares.
...
llvm-svn: 94997
2010-02-01 20:04:40 +00:00
Dale Johannesen
1483e87700
fix PR 6157. Testcase pending.
...
llvm-svn: 94996
2010-02-01 19:54:53 +00:00
Chris Lattner
333bf5abf5
cleanups.
...
llvm-svn: 94995
2010-02-01 19:54:45 +00:00
Chris Lattner
8e4042108e
fix PR6197 - infinite recursion in ipsccp due to block addresses
...
evaluateICmpRelation wasn't handling blockaddress.
llvm-svn: 94993
2010-02-01 19:35:08 +00:00
Mon P Wang
f9fa3aa2c0
Fixed a couple of optimization with EXTRACT_VECTOR_ELT that assumes the result
...
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
2010-02-01 19:03:18 +00:00
Dan Gohman
7b3c210a47
Update this test for a trivial register allocation difference.
...
llvm-svn: 94989
2010-02-01 19:00:32 +00:00
Dan Gohman
0b2c2769ba
Generalize target-independent folding rules for sizeof to handle more
...
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
2010-02-01 18:27:38 +00:00
Chris Lattner
5f10919836
fix rdar://7590304, a miscompilation of objc apps on arm. The caller
...
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
2010-02-01 18:11:34 +00:00
Chris Lattner
a336497d3f
fix rdar://7590304, an infinite loop in instcombine. In the invoke
...
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
2010-02-01 18:04:58 +00:00
Bob Wilson
8207d33d94
Fix pr6198 by moving the isSized() check to an outer conditional.
...
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
2010-02-01 17:41:44 +00:00
Dan Gohman
d1d30c5ec2
Add a getNUWMul function.
...
llvm-svn: 94982
2010-02-01 16:38:14 +00:00
Dan Gohman
9026a494ae
Add a generalized form of ConstantExpr::getOffsetOf which works for
...
array types as well as struct types, and which accepts arbitrary
Constant indicies.
llvm-svn: 94981
2010-02-01 16:37:38 +00:00
Bruno Cardoso Lopes
7099d40968
MulOp is actually a Mips specific node, so do the match using Opcode. This fixes PR6192
...
llvm-svn: 94977
2010-02-01 12:16:39 +00:00
Zhongxing Xu
e075bd78c6
Add an immutable interval map, prepared to be used by flat memory model
...
in the analyzer. WIP.
llvm-svn: 94976
2010-02-01 10:43:31 +00:00
Sean Callanan
ad75f823d7
Whoops, left some debugging code in that broke
...
a buildbot. Removed.
llvm-svn: 94975
2010-02-01 09:02:24 +00:00
Sean Callanan
e860736826
Added the enhanced disassembly library's implementation and
...
fleshed out the .exports file. I still have to fix several
details of operand parsing, but the basic functionality is
there and usable.
llvm-svn: 94974
2010-02-01 08:49:35 +00:00
Zhongxing Xu
f9abfaa0c2
Simplify code. We can compare TNew with T in one batch.
...
llvm-svn: 94973
2010-02-01 07:32:52 +00:00
Evan Cheng
dcc1816642
Undo r94946 now all the tests are passing again.
...
llvm-svn: 94970
2010-02-01 02:13:39 +00:00
Bruno Cardoso Lopes
2a49e86448
Fix stack size bug while using o32 abi
...
llvm-svn: 94969
2010-02-01 02:03:24 +00:00
Johnny Chen
15f2bf96d8
For MVNr and MVNs, we need to set Inst{25} = 0 so as not to confuse the decoder.
...
llvm-svn: 94955
2010-01-31 11:22:28 +00:00
Evan Cheng
e86a191862
Change TAILJMP's to be varargs and transfer implicit uses over from TCRETURN's. Otherwise the missing uses can make post-regalloc scheduling do bad things. This fixes 403.gcc.
...
llvm-svn: 94950
2010-01-31 07:28:44 +00:00
Evan Cheng
c3c18b9fe9
Fix a missing check from my last commit.
...
llvm-svn: 94949
2010-01-31 07:27:31 +00:00
Evan Cheng
b5f97d871c
Avoid recursive sibcall's.
...
llvm-svn: 94946
2010-01-31 06:44:49 +00:00
Eli Friedman
28884d637b
Remove a completed item, add a couple new ones.
...
llvm-svn: 94945
2010-01-31 04:55:32 +00:00
Eli Friedman
0babc63336
Remove test which is no longer relevant.
...
llvm-svn: 94944
2010-01-31 04:40:45 +00:00
Eli Friedman
19c5c57885
Simplify/generalize the xor+add->sign-extend instcombine.
...
llvm-svn: 94943
2010-01-31 04:29:12 +00:00
Eli Friedman
58c7936637
Add a small transform: transform -(X<<Y) to (-X<<Y) when the shift has a single
...
use and X is free to negate.
llvm-svn: 94941
2010-01-31 02:30:23 +00:00
Sean Callanan
5458663492
Moved InstallLexer() from the X86-specific AsmLexer
...
to the TargetAsmLexer class so that clients can
actually use the TargetAsmLexer they get from a
Target.
llvm-svn: 94940
2010-01-31 02:28:18 +00:00
Evan Cheng
c2f3c20680
Do not mark no-return calls tail calls. It'll screw up special calls like longjmp and it doesn't make much sense for performance reason. If my logic is faulty, please let me know.
...
llvm-svn: 94937
2010-01-31 00:59:31 +00:00
Bruno Cardoso Lopes
dcd6d1450f
Fix PR6144. Reload GP before the emission of CALLSEQ_END to guarantee the right reload order
...
llvm-svn: 94915
2010-01-30 18:32:07 +00:00
Bruno Cardoso Lopes
a82b8ade4d
Fix mov.d out register by using the FFR register class directly
...
llvm-svn: 94914
2010-01-30 18:29:19 +00:00
Anton Korobeynikov
f7651ec593
Fix a gross typo: ARMv6+ may or may not support unaligned memory operations.
...
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
2010-01-30 14:08:12 +00:00
Bob Wilson
0f04082970
Check alignment of loads when deciding whether it is safe to execute them
...
unconditionally. Besides checking the offset, also check that the underlying
object is aligned as much as the load itself.
llvm-svn: 94875
2010-01-30 04:42:39 +00:00
Evan Cheng
40ae22e14d
Allow more tailcall optimization: calls with inputs that are all passed in registers.
...
llvm-svn: 94873
2010-01-30 01:22:00 +00:00
Evan Cheng
5acba193ef
Don't forget to transfer target flag when inserting a tailcall instruction.
...
llvm-svn: 94872
2010-01-30 01:16:15 +00:00
Devang Patel
70713c75da
Emit declaration DIE for the class static variables.
...
llvm-svn: 94870
2010-01-30 01:08:30 +00:00
Daniel Dunbar
23e8bc782c
MC/X86 AsmParser: Handle absolute memory operands correctly. We were doing
...
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
2010-01-30 01:02:48 +00:00
Daniel Dunbar
0016281dc2
AsmMatcher: Create operand classes before use, apparently records aren't visited
...
in the order they were declared.
llvm-svn: 94868
2010-01-30 01:02:37 +00:00
Dale Johannesen
9774a29dc0
Fix a case where debug_value could affect codegen.
...
llvm-svn: 94866
2010-01-30 00:57:47 +00:00