summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* 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
* Split the "operand -> symbol" logic from the "get offset and other mungingChris Lattner2009-09-032-36/+34
| | | | | | from operand" logic. GlobalAddress still todo. llvm-svn: 80884
* implement lowering support for constant pool index operands, this gets a ↵Chris Lattner2009-09-032-13/+52
| | | | | | | | bunch more olden programs working. llvm-svn: 80881
* X86JITInfo::getLazyResolverFunction() should not read cpu id to determine ↵Evan Cheng2009-09-034-33/+25
| | | | | | | | whether sse is available. Just use consult subtarget. No functionality changes. llvm-svn: 80880
* output alignment value in hex so that we get:Chris Lattner2009-09-031-1/+2
| | | | | | | | | | .align 3, 0x90 instead of, .align 3, 144 suggested by eric. llvm-svn: 80875
* simplify this by using SmallString::str(), much nicer!Chris Lattner2009-09-031-1/+1
| | | | llvm-svn: 80874
* Fixed a test that ensures the LocalRewriter does not attempt toLang Hames2009-09-032-2/+2
| | | | | | | | | avoid reloads by reusing clobbered registers. This was causing issues in 256.bzip2 when compiled with PIC for a while (starting at r78217), though the problem has since been masked. llvm-svn: 80872
* back out my recent commit (r80858), it seems to break self-hosting ↵Gabor Greif2009-09-0310-28/+20
| | | | | | buildbot's stage 2 configure llvm-svn: 80871
* Now Bitcode reader bug is fixed. Reapply 80839.Devang Patel2009-09-035-35/+113
| | | | | | | | Use CallbackVH, instead of WeakVH, to hold MDNode elements. Use FoldingSetNode to unique MDNodes in a context. Use CallbackVH hooks to update context's MDNodeSet appropriately. llvm-svn: 80868
* Add new value for given index in MDValuePtrs.Devang Patel2009-09-031-0/+3
| | | | llvm-svn: 80867
* Improve llvm::getHostTriple for some cases where the LLVM_HOSTTRIPLE is notDaniel Dunbar2009-09-031-4/+42
| | | | | | reliable. llvm-svn: 80863
* re-commit r66920 (which has been backed out in r66953) I may have more luck ↵Gabor Greif2009-09-0310-20/+28
| | | | | | this time. I'll back out if needed... llvm-svn: 80858
* Added opaque 32-, 48-, and 80-bit memory operand types to the X86Sean Callanan2009-09-034-0/+31
| | | | | | | | | instruction tables to support segmented addressing (and other objects of obscure type). Modified the X86 assembly printers to handle these new operand types. Added JMP and CALL instructions that use segmented addresses. llvm-svn: 80857
* Show derived host triple in --version.Daniel Dunbar2009-09-021-0/+2
| | | | llvm-svn: 80855
* Revert 80839 for now. It causes test failures.Devang Patel2009-09-025-113/+35
| | | | llvm-svn: 80841
* Use CallbackVH, instead of WeakVH, to hold MDNode elements. Devang Patel2009-09-025-35/+113
| | | | | | | Use FoldingSetNode to unique MDNodes in a context. Use CallbackVH hooks to update context's MDNodeSet appropriately. llvm-svn: 80839
* More missed vdup patternsAnton Korobeynikov2009-09-021-0/+12
| | | | llvm-svn: 80838
OpenPOWER on IntegriCloud