aboutsummaryrefslogtreecommitdiffstats
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* If "optimize for size" attribute is set then block non-trivial loop ↵Devang Patel2009-02-031-3/+2
| | | | | | unswitches but allow trivial loop unswitches. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63670 91177308-0d34-0410-b5e6-96231b3b80d8
* DebugLoc propgationDale Johannesen2009-02-031-25/+35
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63664 91177308-0d34-0410-b5e6-96231b3b80d8
* More whitespace fixin'.Bill Wendling2009-02-031-37/+36
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63663 91177308-0d34-0410-b5e6-96231b3b80d8
* Whitespace and comment changes. No functionality change.Bill Wendling2009-02-032-25/+12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63660 91177308-0d34-0410-b5e6-96231b3b80d8
* teach "convert from scalar" to handle loads of fca's.Chris Lattner2009-02-031-2/+29
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63659 91177308-0d34-0410-b5e6-96231b3b80d8
* refactor the interface to ConvertUsesOfLoadToScalar, Chris Lattner2009-02-031-34/+35
| | | | | | | renaming it to ConvertScalar_ExtractValue git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63658 91177308-0d34-0410-b5e6-96231b3b80d8
* DebugLoc propagation. done with file.Dale Johannesen2009-02-031-179/+226
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63656 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove dead code.Devang Patel2009-02-031-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63653 91177308-0d34-0410-b5e6-96231b3b80d8
* convert ConvertUsesOfLoadToScalar to use IRBuilder,Chris Lattner2009-02-031-37/+33
| | | | | | | no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63652 91177308-0d34-0410-b5e6-96231b3b80d8
* switch ConvertScalar_InsertValue to use an IRBuilder, no Chris Lattner2009-02-031-30/+32
| | | | | | | functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63651 91177308-0d34-0410-b5e6-96231b3b80d8
* DebugLoc propagation. 2/3 through file.Dale Johannesen2009-02-032-346/+409
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63650 91177308-0d34-0410-b5e6-96231b3b80d8
* make scalar conversion handle stores of first classChris Lattner2009-02-031-22/+38
| | | | | | | | aggregate values. loads are not yet handled (coming soon to an sroa near you). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63649 91177308-0d34-0410-b5e6-96231b3b80d8
* Change the post-RA scheduler to iterate through theDan Gohman2009-02-031-9/+11
| | | | | | | | | basic-block segments bottom-up instead of top down. This is the first step in a general restructuring of the way register liveness is tracked in the post-RA scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63643 91177308-0d34-0410-b5e6-96231b3b80d8
* Tevert part of the x86 subtarget logic changes: when -march=x86-64Dan Gohman2009-02-031-4/+5
| | | | | | | | | | | | | | | | 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/trunk@63642 91177308-0d34-0410-b5e6-96231b3b80d8
* First initialize DAG otherwise dwarf writer is used uninitialized.Devang Patel2009-02-032-2/+2
| | | | | | | | Duncan spotted this. Thanks! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63641 91177308-0d34-0410-b5e6-96231b3b80d8
* Make SROA produce a vector only when the alloca is actually Chris Lattner2009-02-031-7/+20
| | | | | | | | | | | | | | | | | | | | | accessed at least once as a vector. This prevents it from compiling the example in not-a-vector into: define double @test(double %A, double %B) { %tmp4 = insertelement <7 x double> undef, double %A, i32 0 %tmp = insertelement <7 x double> %tmp4, double %B, i32 4 %tmp2 = extractelement <7 x double> %tmp, i32 4 ret double %tmp2 } instead, producing the integer code. Producing vectors when they aren't otherwise in the program is dangerous because a lot of other code treats them carefully and doesn't want to break them down. OTOH, many things want to break down tasty i448's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63638 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix PR3411. When replacing values, nodes are analyzedDuncan Sands2009-02-031-5/+7
| | | | | | | | | | in any old order. Since analyzing a node analyzes its operands also, this can mean that when we pop a node off the list of nodes to be analyzed, it may already have been analyzed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63632 91177308-0d34-0410-b5e6-96231b3b80d8
* APInt'fy SimplifyDemandedVectorElts so it can analyze vectors with more than ↵Evan Cheng2009-02-031-49/+54
| | | | | | 64 elements. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63631 91177308-0d34-0410-b5e6-96231b3b80d8
* add another case of undefined behavior without crashing, PR3466.Chris Lattner2009-02-031-2/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63620 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert r63600. It didn't fix the bug, it just moved it a bit.Nick Lewycky2009-02-031-7/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63618 91177308-0d34-0410-b5e6-96231b3b80d8
* Teach AliasAnalysis that a bunch of the atomic intrinsics only dereference ↵Owen Anderson2009-02-031-0/+22
| | | | | | their arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63616 91177308-0d34-0410-b5e6-96231b3b80d8
* Update the callgraph when replacing InvokeInst with CallInst when inlining.Nick Lewycky2009-02-031-3/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63600 91177308-0d34-0410-b5e6-96231b3b80d8
* Explicitly pass in debug location information to BuildMI.Bill Wendling2009-02-034-4/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63599 91177308-0d34-0410-b5e6-96231b3b80d8
* Pass in something sensible for the debug location information when creating theBill Wendling2009-02-033-6/+52
| | | | | | | initial PHI nodes of the machine function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63598 91177308-0d34-0410-b5e6-96231b3b80d8
* fix a bitcode reader bug where it can't handle extractelement correctly:Chris Lattner2009-02-031-2/+1
| | | | | | | 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
* Teach ConvertUsesToScalar to handle memset, allowing it to handle Chris Lattner2009-02-031-21/+55
| | | | | | | | | | | | | | | | 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
* Fill in some missing DL propagation in getNode()s.Dale Johannesen2009-02-031-22/+24
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63595 91177308-0d34-0410-b5e6-96231b3b80d8
* Use SDL->getCurDebugLoc() instead of unknown loc for landing pads.Bill Wendling2009-02-031-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63594 91177308-0d34-0410-b5e6-96231b3b80d8
* Explicitly pass in the "unknown" debug location. This is probably notBill Wendling2009-02-032-2/+3
| | | | | | | | 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
* Alphabetize includes.Bill Wendling2009-02-031-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63591 91177308-0d34-0410-b5e6-96231b3b80d8
* rearrange how SRoA handles promotion of allocas to vectors.Chris Lattner2009-02-031-93/+120
| | | | | | | | | | | | 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
* Move isIdentifiedObject and isNoAliasCall into AliasAnalysis.cpp sinceDan Gohman2009-02-032-24/+24
| | | | | | | | | 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
* Propagate debug loc info during SDNode -> machine instr creation.Bill Wendling2009-02-031-6/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63585 91177308-0d34-0410-b5e6-96231b3b80d8
* Create DebugLoc information in FastISel. Several temporary methods wereBill Wendling2009-02-035-34/+47
| | | | | | | | 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
* Propagation in TargetLowering. Includes passing a DLDale Johannesen2009-02-035-113/+132
| | | | | | | | into SimplifySetCC which gets called elsewhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63583 91177308-0d34-0410-b5e6-96231b3b80d8
* Use the SubclassData field to hold ExtType, isTrunc, and MemIndexedModeDan Gohman2009-02-031-45/+40
| | | | | | | | | 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
* Change Feature64Bit to not imply FeatureSSE2. All x86-64 hardware hasDan Gohman2009-02-032-17/+22
| | | | | | | | | | | | | | | 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
* Last DebugLoc propagation for this file.Dale Johannesen2009-02-021-180/+204
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63574 91177308-0d34-0410-b5e6-96231b3b80d8
* More DebugLoc propagation. This should be everythingDale Johannesen2009-02-021-100/+112
| | | | | | | | except LegalizeOp itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63560 91177308-0d34-0410-b5e6-96231b3b80d8
* Improve -fno-opt style option processing to not require an extraMike Stump2009-02-021-19/+2
| | | | | | | | 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
* MergeValueInto is too smart: it might choose to do the merge the opposite ↵Owen Anderson2009-02-022-3/+21
| | | | | | | | | | 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
* DebugLoc propagation. ExpandOp and PromoteOp,Dale Johannesen2009-02-021-307/+330
| | | | | | | | among others. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63555 91177308-0d34-0410-b5e6-96231b3b80d8
* Only force SSE level if it is not correct.Torok Edwin2009-02-021-3/+10
| | | | | | | 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
* Commit missing files.Dale Johannesen2009-02-021-0/+14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63545 91177308-0d34-0410-b5e6-96231b3b80d8
* inline SROA::ConvertToScalar, no functionality change.Chris Lattner2009-02-021-20/+14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63544 91177308-0d34-0410-b5e6-96231b3b80d8
* More DebugLoc propagation.Dale Johannesen2009-02-021-109/+127
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63543 91177308-0d34-0410-b5e6-96231b3b80d8
* remove #if 0 code on Bill's request.Torok Edwin2009-02-021-4/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63542 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove trailing spaces.Duncan Sands2009-02-023-15/+15
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63540 91177308-0d34-0410-b5e6-96231b3b80d8
* DebugLoc propagation for int<->fp conversions.Dale Johannesen2009-02-021-74/+89
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63537 91177308-0d34-0410-b5e6-96231b3b80d8
* Refactor PerformPHIConstruction, no functionality changes.Evan Cheng2009-02-021-125/+165
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63536 91177308-0d34-0410-b5e6-96231b3b80d8