summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Fix PR6196. GV callee may not be a function.Evan Cheng2010-02-011-3/+5
| | | | llvm-svn: 95017
* Improve EXTRACT_VECTOR_ELT patch based on comments from DuncanMon P Wang2010-02-012-10/+10
| | | | llvm-svn: 95012
* 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
* eliminate a bunch of pointless LLVMContext arguments.Chris Lattner2010-02-014-204/+149
| | | | 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-011-3/+5
| | | | 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-011-19/+47
| | | | | | 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
* Generalize target-independent folding rules for sizeof to handle moreDan Gohman2010-02-014-64/+267
| | | | | | | | | | | | | | | | | | | 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-011-3/+7
| | | | | | | | | 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-011-1/+6
| | | | | | | | | | | | | 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-011-0/+5
| | | | llvm-svn: 94982
* Add a generalized form of ConstantExpr::getOffsetOf which works forDan Gohman2010-02-011-4/+9
| | | | | | | 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
* Undo r94946 now all the tests are passing again.Evan Cheng2010-02-011-11/+3
| | | | 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-311-6/+20
| | | | llvm-svn: 94946
* Remove a completed item, add a couple new ones.Eli Friedman2010-01-311-4/+38
| | | | llvm-svn: 94945
* Simplify/generalize the xor+add->sign-extend instcombine.Eli Friedman2010-01-311-35/+19
| | | | llvm-svn: 94943
* Add a small transform: transform -(X<<Y) to (-X<<Y) when the shift has a singleEli Friedman2010-01-311-0/+7
| | | | | | use and X is free to negate. llvm-svn: 94941
* Moved InstallLexer() from the X86-specific AsmLexerSean Callanan2010-01-312-9/+4
| | | | | | | | 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-311-4/+5
| | | | | | 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-301-2/+5
| | | | | | | | | 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-304-15/+25
| | | | | | | 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-301-3/+12
| | | | | | 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-302-6/+33
| | | | | | | | | | | | 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
* 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
* X86.td: Refactor to bring operands that use print_pcrel_imm together.Daniel Dunbar2010-01-301-18/+14
| | | | llvm-svn: 94861
* AsmMatcher/X86: Separate out sublass for memory operands that have no segmentDaniel Dunbar2010-01-302-5/+19
| | | | | | register, and use to cleanup a FIXME in X86AsmParser.cpp. llvm-svn: 94859
* Keep iterating over all uses when meeting a phi node in ↵Jakob Stoklund Olesen2010-01-291-2/+2
| | | | | | | | | | | 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
* Modified encoding bits specification for VFP instructions. In particular, the DJohnny Chen2010-01-292-104/+120
| | | | | | | 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
* Print a comment next to "materializable" global values, to distinguishDan Gohman2010-01-291-0/+9
| | | | | | them from values that are not actually defined in the module. llvm-svn: 94854
* PPC is not ready for sibcall optimization.Evan Cheng2010-01-291-0/+3
| | | | llvm-svn: 94853
* Preserve load alignment in instcombine transformations. I've been unable toBob Wilson2010-01-291-0/+3
| | | | | | | | | | 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
* Add assertion to humor the paranoid.Dale Johannesen2010-01-291-0/+1
| | | | llvm-svn: 94843
* We were not writing bitcode for function-local metadata whose operands have ↵Victor Hernandez2010-01-291-2/+2
| | | | | | been erased (making it not have any more function-local operands) llvm-svn: 94842
* Revert my last couple of patches. They appear to have broken bison.Eric Christopher2010-01-292-43/+15
| | | | llvm-svn: 94841
* Use uint64_t instead of unsigned for offsets and sizes.Bob Wilson2010-01-291-3/+3
| | | | llvm-svn: 94835
* Improve isSafeToLoadUnconditionally to recognize that GEPs with constantBob Wilson2010-01-294-21/+65
| | | | | | | indices are safe if the result is known to be within the bounds of the underlying object. llvm-svn: 94829
OpenPOWER on IntegriCloud