aboutsummaryrefslogtreecommitdiffstats
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
* Mark more constants unsigned, as warned about by icc (#68).Duncan Sands2009-09-063-6/+6
| | | | | | | Patch by Erick Tryzelaar. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81116 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove some not-really-used variables, as warnedDuncan Sands2009-09-0612-42/+19
| | | | | | | about by icc (#593, partial). Patch by Erick Tryzelaar. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81115 91177308-0d34-0410-b5e6-96231b3b80d8
* More MSVC warning fixes:Benjamin Kramer2009-09-063-2/+5
| | | | | | | | 1. DUPMAX is defined in regcomp.c, no need to redefine it in regutils. 2. MSVC doesn't like snprintf, use _snprintf instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81114 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove strange 'const' qualifiers, as warned about by iccDuncan Sands2009-09-061-2/+2
| | | | | | | (#411). Patch by Erick Tryzelaar. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81113 91177308-0d34-0410-b5e6-96231b3b80d8
* It's a bool, so treat it like one. Fixes a MSVC warning.Benjamin Kramer2009-09-061-4/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81112 91177308-0d34-0410-b5e6-96231b3b80d8
* Tweak code into an equivalent form for which iccDuncan Sands2009-09-063-17/+13
| | | | | | | | doesn't warn about unreachable instructions. Patch by Erick Tryzelaar (#111). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81110 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove splint hints to silence warnings from ICC and MSVC.Benjamin Kramer2009-09-061-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81108 91177308-0d34-0410-b5e6-96231b3b80d8
* Public and private corrections, warned about by icc (#304).Duncan Sands2009-09-064-13/+13
| | | | | | | Patch by Erick Tryzelaar. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81107 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove some unused variables and methods warned about byDuncan Sands2009-09-068-14/+2
| | | | | | | icc (#177, partial). Patch by Erick Tryzelaar. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81106 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a possible crash call setIsInBounds.Daniel Dunbar2009-09-061-2/+2
| | | | | | | | - I think there are more instances of this, but I think they are fixed in Dan's incoming patch. This one was preventing me from doing a bugpoint reduction though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81103 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert r80926. It causes loop unswitch assertion and slow down some JIT ↵Evan Cheng2009-09-068-206/+131
| | | | | | tests significantly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81101 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert "Include optional subclass flags, such as inbounds, nsw, etc., ...", thisDaniel Dunbar2009-09-066-188/+127
| | | | | | breaks MiniSAT on x86_64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81098 91177308-0d34-0410-b5e6-96231b3b80d8
* Detect VLAs.Devang Patel2009-09-051-1/+5
| | | | | | | Do not use DenseMap operator[] because it inserts new entry if lookup fails. Use find() to check an entry in a DenseMap first. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81058 91177308-0d34-0410-b5e6-96231b3b80d8
* Ignore malformed global variable debug info.Devang Patel2009-09-041-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81055 91177308-0d34-0410-b5e6-96231b3b80d8
* While replacing an MDNode elment, properly update MDNode's operand list. Devang Patel2009-09-042-3/+28
| | | | | | | MDNode's operand list does not include all elements. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81045 91177308-0d34-0410-b5e6-96231b3b80d8
* Prevent warnings on compilers for which its not clear that assert won't return.Andreas Neustifter2009-09-041-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81044 91177308-0d34-0410-b5e6-96231b3b80d8
* Replaces uses of unsigned for indexes in LiveInterval and VNInfo withLang Hames2009-09-0410-447/+517
| | | | | | | | | a new class, MachineInstrIndex, which hides arithmetic details from most clients. This is a step towards allowing the register allocator to update/insert code during allocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81040 91177308-0d34-0410-b5e6-96231b3b80d8
* Cleaned up ProfileVerifierPass.Andreas Neustifter2009-09-041-57/+78
| | | | | | | (See http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20090831/086219.html) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81007 91177308-0d34-0410-b5e6-96231b3b80d8
* Converted MaximumSpanningTree algorithm to a generic template, this could goAndreas Neustifter2009-09-044-138/+64
| | | | | | | into llvm/ADT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81001 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80998 91177308-0d34-0410-b5e6-96231b3b80d8
* Use delete[] to match new[] (found by valgrind).Duncan Sands2009-09-041-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80997 91177308-0d34-0410-b5e6-96231b3b80d8
* Run branch folding if if-converter make some transformations.Evan Cheng2009-09-043-84/+155
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80994 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix comment for consistency sake.Evan Cheng2009-09-041-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80993 91177308-0d34-0410-b5e6-96231b3b80d8
* Whitespace cleanupJim Grosbach2009-09-041-23/+23
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80978 91177308-0d34-0410-b5e6-96231b3b80d8
* If there's a calling convention attach it to the rewind function call.Eric Christopher2009-09-041-1/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80976 91177308-0d34-0410-b5e6-96231b3b80d8
* Funky indentation.Evan Cheng2009-09-031-1/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80971 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert "--- Reverse-merging r80908 into '.':", I already "fixed" this.Daniel Dunbar2009-09-031-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80970 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80969 91177308-0d34-0410-b5e6-96231b3b80d8
* --- 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80966 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80963 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't crash when target has no itineraries.David Goodwin2009-09-031-54/+58
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80962 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80960 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80959 91177308-0d34-0410-b5e6-96231b3b80d8
* Create our own block initializer for kill fixups as the scheduling one ↵David Goodwin2009-09-031-33/+63
| | | | | | wasn't doing the right thing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80958 91177308-0d34-0410-b5e6-96231b3b80d8
* Calls clobber FPSCR.David Goodwin2009-09-032-4/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80956 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80945 91177308-0d34-0410-b5e6-96231b3b80d8
* Smallvectorize switchExitBlocks.Dan Gohman2009-09-031-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80942 91177308-0d34-0410-b5e6-96231b3b80d8
* There is not any need to copy metadata while merging modules.Devang Patel2009-09-031-8/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80941 91177308-0d34-0410-b5e6-96231b3b80d8
* Recognize more opportunities to use SSE min and max instructions,Dan Gohman2009-09-032-3/+36
| | | | | | | swapping the operands if necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80940 91177308-0d34-0410-b5e6-96231b3b80d8
* 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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80935 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80930 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80929 91177308-0d34-0410-b5e6-96231b3b80d8
* Use WeakVH to hold dead mdnodes. Check use_empty() before deleting a node.Devang Patel2009-09-031-5/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80928 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80926 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80923 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80920 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't try to verify a LoopPass analysis if the loop has been deleted.Dan Gohman2009-09-031-1/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80919 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove references to expression "handles", which are no longer used.Dan Gohman2009-09-031-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80918 91177308-0d34-0410-b5e6-96231b3b80d8
* CppBackend: avoid printing unnecessary whitespace.Benjamin Kramer2009-09-031-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80917 91177308-0d34-0410-b5e6-96231b3b80d8
* Keep track of how many memmove calls were turned intoDuncan Sands2009-09-031-1/+4
| | | | | | | memcpy calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80915 91177308-0d34-0410-b5e6-96231b3b80d8