summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* Fix PR6196. GV callee may not be a function.Evan Cheng2010-02-012-3/+17
| | | | llvm-svn: 95017
* Add test case for 95013.Evan Cheng2010-02-011-0/+5
| | | | llvm-svn: 95014
* Improve EXTRACT_VECTOR_ELT patch based on comments from DuncanMon P Wang2010-02-012-10/+10
| | | | llvm-svn: 95012
* Rollback on including blocks functionality in .exportsSean Callanan2010-02-011-3/+0
| | | | | | | because some platforms don't support blocks and then break because the symbols aren't present llvm-svn: 95011
* Add an option to GVN to remove all partially redundant loads. This is currentlyBob Wilson2010-02-011-80/+107
| | | | | | | | | 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
* Do an early exit when the result is known cheaply.Duncan Sands2010-02-011-0/+5
| | | | llvm-svn: 95002
* eliminate a bunch of pointless LLVMContext arguments.Chris Lattner2010-02-015-206/+150
| | | | llvm-svn: 95001
* Fix typo "of" -> "or" and change the way a line was formatted to fitDuncan Sands2010-02-011-2/+2
| | | | | | into 80 columns to match my artistic preferences. llvm-svn: 95000
* fix PR6195, a bug constant folding scalar -> vector compares.Chris Lattner2010-02-012-3/+14
| | | | llvm-svn: 94997
* fix PR 6157. Testcase pending.Dale Johannesen2010-02-011-0/+35
| | | | llvm-svn: 94996
* cleanups.Chris Lattner2010-02-011-4/+4
| | | | llvm-svn: 94995
* fix PR6197 - infinite recursion in ipsccp due to block addressesChris Lattner2010-02-012-19/+59
| | | | | | evaluateICmpRelation wasn't handling blockaddress. llvm-svn: 94993
* Fixed a couple of optimization with EXTRACT_VECTOR_ELT that assumes the resultMon P Wang2010-02-012-5/+12
| | | | | | | | 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
* Update this test for a trivial register allocation difference.Dan Gohman2010-02-011-1/+1
| | | | llvm-svn: 94989
* Generalize target-independent folding rules for sizeof to handle moreDan Gohman2010-02-018-103/+599
| | | | | | | | | | | | | | | | | | | 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
* fix rdar://7590304, a miscompilation of objc apps on arm. The callerChris Lattner2010-02-012-4/+28
| | | | | | | | | 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
* fix rdar://7590304, an infinite loop in instcombine. In the invokeChris Lattner2010-02-012-1/+28
| | | | | | | | | | | | | 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
* Fix pr6198 by moving the isSized() check to an outer conditional.Bob Wilson2010-02-011-6/+8
| | | | | | | 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
* Add a getNUWMul function.Dan Gohman2010-02-012-0/+6
| | | | llvm-svn: 94982
* Add a generalized form of ConstantExpr::getOffsetOf which works forDan Gohman2010-02-012-7/+17
| | | | | | | array types as well as struct types, and which accepts arbitrary Constant indicies. llvm-svn: 94981
* MulOp is actually a Mips specific node, so do the match using Opcode. This ↵Bruno Cardoso Lopes2010-02-011-1/+1
| | | | | | fixes PR6192 llvm-svn: 94977
* Add an immutable interval map, prepared to be used by flat memory model Zhongxing Xu2010-02-013-2/+203
| | | | | | in the analyzer. WIP. llvm-svn: 94976
* Whoops, left some debugging code in that brokeSean Callanan2010-02-011-8/+0
| | | | | | a buildbot. Removed. llvm-svn: 94975
* Added the enhanced disassembly library's implementation andSean Callanan2010-02-0110-2/+1865
| | | | | | | | 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
* Simplify code. We can compare TNew with T in one batch.Zhongxing Xu2010-02-011-14/+3
| | | | llvm-svn: 94973
* Undo r94946 now all the tests are passing again.Evan Cheng2010-02-012-12/+4
| | | | llvm-svn: 94970
* Fix stack size bug while using o32 abiBruno Cardoso Lopes2010-02-011-10/+18
| | | | llvm-svn: 94969
* For MVNr and MVNs, we need to set Inst{25} = 0 so as not to confuse the decoder.Johnny Chen2010-01-311-1/+4
| | | | llvm-svn: 94955
* Change TAILJMP's to be varargs and transfer implicit uses over from ↵Evan Cheng2010-01-313-7/+13
| | | | | | TCRETURN's. Otherwise the missing uses can make post-regalloc scheduling do bad things. This fixes 403.gcc. llvm-svn: 94950
* Fix a missing check from my last commit.Evan Cheng2010-01-311-1/+2
| | | | llvm-svn: 94949
* Avoid recursive sibcall's.Evan Cheng2010-01-312-6/+44
| | | | llvm-svn: 94946
* Remove a completed item, add a couple new ones.Eli Friedman2010-01-311-4/+38
| | | | llvm-svn: 94945
* Remove test which is no longer relevant.Eli Friedman2010-01-311-15/+0
| | | | llvm-svn: 94944
* Simplify/generalize the xor+add->sign-extend instcombine.Eli Friedman2010-01-312-41/+36
| | | | llvm-svn: 94943
* Add a small transform: transform -(X<<Y) to (-X<<Y) when the shift has a singleEli Friedman2010-01-312-0/+15
| | | | | | use and X is free to negate. llvm-svn: 94941
* Moved InstallLexer() from the X86-specific AsmLexerSean Callanan2010-01-313-9/+14
| | | | | | | | to the TargetAsmLexer class so that clients can actually use the TargetAsmLexer they get from a Target. llvm-svn: 94940
* Do not mark no-return calls tail calls. It'll screw up special calls like ↵Evan Cheng2010-01-312-4/+17
| | | | | | longjmp and it doesn't make much sense for performance reason. If my logic is faulty, please let me know. llvm-svn: 94937
* Fix PR6144. Reload GP before the emission of CALLSEQ_END to guarantee the ↵Bruno Cardoso Lopes2010-01-301-5/+5
| | | | | | right reload order llvm-svn: 94915
* Fix mov.d out register by using the FFR register class directlyBruno Cardoso Lopes2010-01-301-1/+5
| | | | llvm-svn: 94914
* Fix a gross typo: ARMv6+ may or may not support unaligned memory operations.Anton Korobeynikov2010-01-302-6/+6
| | | | | | | | | 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
* Check alignment of loads when deciding whether it is safe to execute themBob Wilson2010-01-306-16/+70
| | | | | | | unconditionally. Besides checking the offset, also check that the underlying object is aligned as much as the load itself. llvm-svn: 94875
* Allow more tailcall optimization: calls with inputs that are all passed in ↵Evan Cheng2010-01-303-12/+56
| | | | | | registers. llvm-svn: 94873
* Don't forget to transfer target flag when inserting a tailcall instruction.Evan Cheng2010-01-301-1/+2
| | | | llvm-svn: 94872
* Emit declaration DIE for the class static variables.Devang Patel2010-01-301-1/+10
| | | | llvm-svn: 94870
* MC/X86 AsmParser: Handle absolute memory operands correctly. We were doingDaniel Dunbar2010-01-304-7/+40
| | | | | | | | | | | | 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
* AsmMatcher: Create operand classes before use, apparently records aren't visitedDaniel Dunbar2010-01-301-1/+7
| | | | | | in the order they were declared. llvm-svn: 94868
* Fix a case where debug_value could affect codegen.Dale Johannesen2010-01-301-0/+12
| | | | llvm-svn: 94866
* Use more specific types to avoid casts. No functionality change.Bob Wilson2010-01-301-6/+6
| | | | llvm-svn: 94863
* Remove ARM-specific calling convention from this test. Target data isBob Wilson2010-01-301-1/+1
| | | | | | | needed for this test, but otherwise, there's nothing ARM-specific about it and no need to specify the calling convention. llvm-svn: 94862
* X86.td: Refactor to bring operands that use print_pcrel_imm together.Daniel Dunbar2010-01-301-18/+14
| | | | llvm-svn: 94861
OpenPOWER on IntegriCloud