summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Cleaned up ProfileVerifierPass.Andreas Neustifter2009-09-041-57/+78
| | | | | | (See http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20090831/086219.html) llvm-svn: 81007
* Converted MaximumSpanningTree algorithm to a generic template, this could goAndreas Neustifter2009-09-044-138/+64
| | | | | | into llvm/ADT. llvm-svn: 81001
* Include optional subclass flags, such as inbounds, nsw, etc., in theDan Gohman2009-09-046-127/+188
| | | | | | | | | | | | | | | | | Constant uniquing tables. This allows distinct ConstantExpr objects with the same operation and different flags. Even though a ConstantExpr "a + b" is either always overflowing or never overflowing (due to being a ConstantExpr), it's still necessary to be able to represent it both with and without overflow flags at the same time within the IR, because the safety of the flag may depend on the context of the use. If the constant really does overflow, it wouldn't ever be safe to use with the flag set, however the use may be in code that is never actually executed. This also makes it possible to merge all the flags tests into a single test. llvm-svn: 80998
* Use delete[] to match new[] (found by valgrind).Duncan Sands2009-09-041-1/+1
| | | | llvm-svn: 80997
* Run branch folding if if-converter make some transformations.Evan Cheng2009-09-043-84/+155
| | | | llvm-svn: 80994
* Fix comment for consistency sake.Evan Cheng2009-09-041-1/+1
| | | | llvm-svn: 80993
* Whitespace cleanupJim Grosbach2009-09-041-23/+23
| | | | llvm-svn: 80978
* If there's a calling convention attach it to the rewind function call.Eric Christopher2009-09-041-1/+3
| | | | llvm-svn: 80976
* Funky indentation.Evan Cheng2009-09-031-1/+2
| | | | llvm-svn: 80971
* Revert "--- Reverse-merging r80908 into '.':", I already "fixed" this.Daniel Dunbar2009-09-031-1/+1
| | | | llvm-svn: 80970
* Revert 80959. It isn't sufficient to solve the full problem. And itDan Gohman2009-09-034-13/+66
| | | | | | introduced regressions in the Ocaml bindings tests. llvm-svn: 80969
* --- Reverse-merging r80908 into '.':Bill Wendling2009-09-031-1/+1
| | | | | | | | | | | D test/Analysis/Profiling --- Reverse-merging r80907 into '.': U lib/Analysis/ProfileInfoLoaderPass.cpp Attempt to remove failure in the self-hosting build bot. llvm-svn: 80966
* LLVM currently represents floating-point negation as -0.0 - x. FixDan Gohman2009-09-031-0/+23
| | | | | | | FastISel to recognize this pattern and emit a floating-point negation using xor. llvm-svn: 80963
* Don't crash when target has no itineraries.David Goodwin2009-09-031-54/+58
| | | | llvm-svn: 80962
* If we've pushed registers onto the stack, but aren't adjusting the stack pointerBill Wendling2009-09-031-2/+2
| | | | | | | (i.e., there are no local variables and stuff), we still need to output FDE information for the pushed registers. llvm-svn: 80960
* Remove the API for creating ConstantExprs with the nsw, nuw, inbounds,Dan Gohman2009-09-034-66/+13
| | | | | | | | | | | | | | | and exact flags. Because ConstantExprs are uniqued, creating an expression with this flag causes all expressions with the same operands to have the same flag, which may not be safe. Add, sub, mul, and sdiv ConstantExprs are usually folded anyway, so the main interesting flag here is inbounds, and the constant folder already knows how to set the inbounds flag automatically in most cases, so there isn't an urgent need for the API support. This can be reconsidered in the future, but for now just removing these API bits eliminates a source of potential trouble with little downside. llvm-svn: 80959
* Create our own block initializer for kill fixups as the scheduling one ↵David Goodwin2009-09-031-33/+63
| | | | | | wasn't doing the right thing. llvm-svn: 80958
* Calls clobber FPSCR.David Goodwin2009-09-032-4/+4
| | | | llvm-svn: 80956
* Overhaul the TwoAddressInstructionPass to simplify the logic, especiallyBob Wilson2009-09-031-159/+210
| | | | | | | | | | | | | | | | | for the complicated case where one register is tied to multiple destinations. This avoids the extra scan of instruction operands that was introduced by my recent change. I also pulled some code out into a separate TryInstructionTransform method, added more comments, and renamed some variables. Besides all those changes, this takes care of a FIXME in the code regarding an assumption about there being a single tied use of a register when converting to a 3-address form. I'm not aware of cases where that assumption is violated, but the code now only attempts to transform an instruction, either by commuting its operands or by converting to a 3-address form, for the simple case where there is a single pair of tied operands. llvm-svn: 80945
* Smallvectorize switchExitBlocks.Dan Gohman2009-09-031-1/+1
| | | | llvm-svn: 80942
* There is not any need to copy metadata while merging modules.Devang Patel2009-09-031-8/+2
| | | | llvm-svn: 80941
* Recognize more opportunities to use SSE min and max instructions,Dan Gohman2009-09-032-3/+36
| | | | | | swapping the operands if necessary. llvm-svn: 80940
* Fixed a few problems with vector shiftsMon P Wang2009-09-031-6/+39
| | | | | | | | | - when transforming a vector shift of a non-immediate scalar shift amount, zero extend the i32 shift amount to i64 since the vector shift reads 64 bits - when transforming i16 vectors to use a vector shift, zero extend i16 shift amount - improve the code quality in some cases when transforming vectors to use a vector shift llvm-svn: 80935
* Add a -disable-16bit flag and associated support for experimenting withDan Gohman2009-09-033-9/+55
| | | | | | | | | disabling the use of 16-bit operations on x86. This doesn't yet work for inline asms with 16-bit constraints, vectors with 16-bit elements, trampoline code, and perhaps other obscurities, but it's enough to try some experiments. llvm-svn: 80930
* Removed the non-target independent AsmToken::Register enum constantKevin Enderby2009-09-031-8/+11
| | | | | | | | | | from MCAsmLexer.h in preparation of supporting other targets. Changed the X86AsmParser code to reflect this by removing AsmLexer::LexPercent and looking for AsmToken::Percent when parsing in places that used AsmToken::Register. Then changed X86ATTAsmParser::ParseRegister to parse out registers as an AsmToken::Percent followed by an AsmToken::Identifier. llvm-svn: 80929
* Use WeakVH to hold dead mdnodes. Check use_empty() before deleting a node.Devang Patel2009-09-031-5/+7
| | | | llvm-svn: 80928
* Add a verifyAnalysis to LoopInfo, LoopSimplify, and LCSSA form that verifyDan Gohman2009-09-038-131/+206
| | | | | | | | | that these passes are properly preserved. Fix several transformation passes that claimed to preserve LoopSimplify form but weren't. llvm-svn: 80926
* Move getUniqueExitBlocks from LoopBase to Loop, since they depend onDan Gohman2009-09-031-0/+68
| | | | | | | LoopSimplify form, which is currently only available on Loops (and not MachineLoops). Also, move the code out of the header file. llvm-svn: 80923
* Change PHINode::hasConstantValue to have a DominatorTree argumentDan Gohman2009-09-035-35/+41
| | | | | | | | instead of a bool argument, and to do the dominator check itself. This makes it eaiser to use when DominatorTree information is available. llvm-svn: 80920
* Don't try to verify a LoopPass analysis if the loop has been deleted.Dan Gohman2009-09-031-1/+3
| | | | llvm-svn: 80919
* Remove references to expression "handles", which are no longer used.Dan Gohman2009-09-031-1/+1
| | | | llvm-svn: 80918
* CppBackend: avoid printing unnecessary whitespace.Benjamin Kramer2009-09-031-2/+2
| | | | llvm-svn: 80917
* Keep track of how many memmove calls were turned intoDuncan Sands2009-09-031-1/+4
| | | | | | memcpy calls. llvm-svn: 80915
* Fix build warning.Andreas Neustifter2009-09-031-1/+1
| | | | llvm-svn: 80912
* Code Cleanup.Andreas Neustifter2009-09-033-18/+14
| | | | | | | Removed inverted flag form MaximumSpanningTree, also do not handle so much information to MaximumSpanningTree. llvm-svn: 80911
* Code Cleanup.Andreas Neustifter2009-09-031-16/+9
| | | | | | (See http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20090831/086139.html) llvm-svn: 80909
* Remove undefined behavior when loading optimal edge profile info.Daniel Dunbar2009-09-031-1/+1
| | | | llvm-svn: 80907
* don't call getOffset() on jump tables, this fixes three failing olden benchmarksChris Lattner2009-09-031-1/+1
| | | | | | with the new asmprinter. llvm-svn: 80906
* Implement support for X86II::MO_GOT_ABSOLUTE_ADDRESS. We get veryChris Lattner2009-09-031-15/+26
| | | | | | | | | | | | | | | | | | different formatting from the old asmprinter, but it should be semantically the same. We used to get: popl %eax addl $_GLOBAL_OFFSET_TABLE_ + [.-.Lllvm$6.$piclabel], %eax ... Now we get: popl %eax .Lpicbaseref6: addl $(_GLOBAL_OFFSET_TABLE_ + (.Lpicbaseref6 - .Lllvm$6.$piclabel)), %eax ... llvm-svn: 80905
* Reference to hidden symbols do not have to go through non-lazy pointer in ↵Evan Cheng2009-09-038-32/+53
| | | | | | non-pic mode. rdar://7187172. llvm-svn: 80904
* Remove VISIBILITY_HIDDEN from this file.Nick Lewycky2009-09-031-4/+3
| | | | llvm-svn: 80903
* fix MCSymbol printing to exactly match the normal mangler rules soChris Lattner2009-09-031-19/+23
| | | | | | we can diff .s files. llvm-svn: 80894
* remove extraneous hack.Chris Lattner2009-09-031-2/+0
| | | | llvm-svn: 80893
* Make these functions static and local.Daniel Dunbar2009-09-032-13/+4
| | | | llvm-svn: 80892
* Thread an MCAsmInfo pointer through the various MC printing APIs, Chris Lattner2009-09-036-32/+41
| | | | | | | and fix a few things using << on MCSymbols to use ->print(). No functionality change other than unbreaking my previous patch. llvm-svn: 80890
* just use dump()Chris Lattner2009-09-031-1/+1
| | | | llvm-svn: 80889
* inline insertion operators.Chris Lattner2009-09-031-15/+9
| | | | llvm-svn: 80888
* In C++, code is not allowed to call main. In C it is, thisChris Lattner2009-09-031-57/+4
| | | | | | | | | | simplifylibcalls optimization is thus valid for C++ but not C. It's not important enough to worry about for C++ apps, so just remove it. rdar://7191924 llvm-svn: 80887
* merge globaladdress symbol processing stuff into other stuff. NowChris Lattner2009-09-032-76/+65
| | | | | | | all global variable operand flag processing stuff is shared between different operand types. llvm-svn: 80886
* Unbreak x86_64 build.Evan Cheng2009-09-031-2/+6
| | | | llvm-svn: 80885
OpenPOWER on IntegriCloud