aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2009-02-17Merge 64582 from mainlineTanya Lattner
Fix PR3522. It's not safe to sink into landing pad BB's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_25@64790 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17Merge 64579 from mainline.Tanya Lattner
Fix pr3571: If stride is a value defined by an instruction, make sure it dominates the loop preheader. When IV users are strength reduced, the stride is inserted into the preheader. It could create a use before def situation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_25@64789 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17Merge all changes to SimpleRegisterCoalescing to the release.Tanya Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_25@64785 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17Merge 64314 from mainline.Tanya Lattner
Make a transformation added in 63266 a bit less aggressive. It was transforming (x&y)==y to (x&y)!=0 in the case where y is variable and known to have at most one bit set (e.g. z&1). This is not correct; the expressions are not equivalent when y==0. I believe this patch salvages what can be salvaged, including all the cases in bt.ll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_25@64782 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-14Merge r64316 from mainline.Tanya Lattner
Don't try to set an EFLAGS operand to dead if no instruction was created. This fixes a bug introduced by r61215. git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_25@64524 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-14Merge 64364 from mainline.Tanya Lattner
Fix a nasty bug (PR3550) where the inline pass could incorrectly mark calls with the tail marker when inlining them through an invoke. Patch, testcase, and perfect analysis by Jay Foad! git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_25@64520 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-14Merge 64124 frm mainline.Tanya Lattner
Turns out AnalyzeBranch can modify the mbb being analyzed. This is a nasty suprise to some callers, e.g. register coalescer. For now, add an parameter that tells AnalyzeBranch whether it's safe to modify the mbb. A better solution is out there, but I don't have time to deal with it right now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_25@64518 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-14Merge 64177 from mainline.Tanya Lattner
Fix PR 3471, and some cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_25@64517 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-13Merge from mainline.Tanya Lattner
Fix PR3486. Fix a bug in code that manually patch physical register live interval after its sub-register is coalesced with a virtual register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_25@64509 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-13Merge from mainline.Tanya Lattner
Pre-alloc splitting needs to be more careful to avoid inserting spills/restores between call frame setup/restore points. Unfortunately, this regresses code size a bit, but at least it's correct now! git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_25@64508 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-04Merge from mainline.Tanya Lattner
First initialize DAG otherwise dwarf writer is used uninitialized. Duncan spotted this. Thanks! git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_25@63793 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-04Merge from mainline.Tanya Lattner
Tevert part of the x86 subtarget logic changes: when -march=x86-64 is given, override the subtarget settings and enable 64-bit support. This restores the earlier behavior, and fixes regressions on Non-64-bit-capable x86-32 hosts. This isn't necessarily the best approach, but the most obvious alternative is to require -mcpu=x86-64 or -mattr=+64bit to be used with -march=x86-64 when the host doesn't have 64-bit support. This makes things little more consistent, but it's less convenient, and it has the practical drawback of requiring lots of test changes, so I opted for the above approach for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_25@63792 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-04Back out r62958 from the release branch.Tanya Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_25@63791 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-04SROA CBE Fix.Tanya Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_25@63790 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-04Disable support for vicmp/vfcmp from the LLVM 2.5 release branch, like we ↵Tanya Lattner
did for LLVM 2.4. These are slated to be removed (PR3370) and we don't want to have to be backwards compatible with them in the future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_25@63788 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-04Merge from mainline.Tanya Lattner
Revert r63600. git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_25@63787 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-03Update the callgraph when replacing InvokeInst with CallInst when inlining.Nick Lewycky
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63600 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-03Explicitly pass in debug location information to BuildMI.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63599 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-03Pass in something sensible for the debug location information when creating theBill Wendling
initial PHI nodes of the machine function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63598 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-03fix a bitcode reader bug where it can't handle extractelement correctly:Chris Lattner
the index of the value being extracted is always an i32. This fixes PR3465 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63597 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-03Teach ConvertUsesToScalar to handle memset, allowing it to handle Chris Lattner
crazy cases like: struct f { int A, B, C, D, E, F; }; short test4() { struct f A; A.A = 1; memset(&A.B, 2, 12); return A.C; } git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63596 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-03Fill in some missing DL propagation in getNode()s.Dale Johannesen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63595 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-03Use SDL->getCurDebugLoc() instead of unknown loc for landing pads.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63594 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-03Explicitly pass in the "unknown" debug location. This is probably notBill Wendling
correct. We need more infrastructure before we can get the DebugLoc info for these instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63593 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-03Alphabetize includes.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63591 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-03rearrange how SRoA handles promotion of allocas to vectors.Chris Lattner
With the new world order, it can handle cases where the first store into the alloca is an element of the vector, instead of requiring the first analyzed store to have the vector type itself. This allows us to un-xfail test/CodeGen/X86/vec_ins_extract.ll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63590 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-03Move isIdentifiedObject and isNoAliasCall into AliasAnalysis.cpp sinceDan Gohman
they are useful to analyses other than BasicAliasAnalysis.cpp. Include the full comment for isIdentifiedObject in the header file. Thanks to Chris for suggeseting this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63589 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-03Propagate debug loc info during SDNode -> machine instr creation.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63585 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-03Create DebugLoc information in FastISel. Several temporary methods wereBill Wendling
created. Specifically, those BuildMIs which use "DebugLoc::getUnknownLoc()". I'll remove them soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63584 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-03Propagation in TargetLowering. Includes passing a DLDale Johannesen
into SimplifySetCC which gets called elsewhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63583 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-03Use the SubclassData field to hold ExtType, isTrunc, and MemIndexedModeDan Gohman
information. This eliminates the need for the Flags field in MemSDNode, so this makes LoadSDNode and StoreSDNode smaller. Also, it makes FoldingSetNodeIDs for loads and stores two AddIntegers smaller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63577 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-03Change Feature64Bit to not imply FeatureSSE2. All x86-64 hardware hasDan Gohman
SSE2, however it's possible to disable SSE2, and the subtarget support code thinks that if 64-bit implies SSE2 and SSE2 is disabled then 64-bit should also be disabled. Instead, just mark all the 64-bit subtargets as explicitly supporting SSE2. Also, move the code that makes -march=x86-64 enable 64-bit support by default to only apply when there is no explicit subtarget. If you need to specify a subtarget and you want 64-bit code, you'll need to select a subtarget that supports 64-bit code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63575 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-02Last DebugLoc propagation for this file.Dale Johannesen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63574 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-02More DebugLoc propagation. This should be everythingDale Johannesen
except LegalizeOp itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63560 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-02Improve -fno-opt style option processing to not require an extraMike Stump
option to make the -fno- form on the option. We also document the new form in the CommandLine documentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63559 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-02MergeValueInto is too smart: it might choose to do the merge the opposite ↵Owen Anderson
direction. Live interval reconstruction needs to account for this, and scour its maps to prevent dangling references. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63558 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-02DebugLoc propagation. ExpandOp and PromoteOp,Dale Johannesen
among others. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63555 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-02Only force SSE level if it is not correct.Torok Edwin
Add an assert to check HasX86_64 status. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63552 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-02Commit missing files.Dale Johannesen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63545 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-02inline SROA::ConvertToScalar, no functionality change.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63544 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-02More DebugLoc propagation.Dale Johannesen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63543 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-02remove #if 0 code on Bill's request.Torok Edwin
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63542 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-02Remove trailing spaces.Duncan Sands
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63540 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-02DebugLoc propagation for int<->fp conversions.Dale Johannesen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63537 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-02Refactor PerformPHIConstruction, no functionality changes.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63536 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-02Fix a bug which caused us to miscompile a couple of AdaChris Lattner
tests. Thanks for the beautiful reduced testcase Duncan! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63529 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-02Do not add redundant arguments in a method definition DIE.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63527 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-02Duncan's patch. Further to 64382. Takes care of illegal types for shift amount.Sanjiv Gupta
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63523 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-02Made the common case of default address space directive as non-virtual for ↵Sanjiv Gupta
performance reasons. Provide a single virtual interface for directives of all sizes in non-default address spaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63521 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-02Fix a comment (bytes -> bits), reformat a commentDuncan Sands
and remove trailing whitespace. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63511 91177308-0d34-0410-b5e6-96231b3b80d8