summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Constify and don't return a reference.Bill Wendling2009-02-041-1/+1
| | | | llvm-svn: 63689
* Ignore dbg intrinsics while hoisting common code in the two blocks up into ↵Devang Patel2009-02-041-3/+14
| | | | | | the branch block. llvm-svn: 63687
* DebugLoc propagation; adjustment to things omittedDale Johannesen2009-02-032-17/+41
| | | | | | from SelectionDagBuild. llvm-svn: 63680
* Erm. Would be nice to initialize this variable. . .Bill Wendling2009-02-031-1/+1
| | | | llvm-svn: 63677
* Add getDebugLocTuple to retrieve the DebugLocTuple for a given DebugLoc object.Bill Wendling2009-02-031-3/+11
| | | | llvm-svn: 63676
* Need this file too.Dale Johannesen2009-02-031-2/+2
| | | | llvm-svn: 63674
* Add some DL propagation to places that didn'tDale Johannesen2009-02-034-73/+86
| | | | | | have it yet. More coming. llvm-svn: 63673
* Do not let dbg intrinsic block folding of two entry phi node.Devang Patel2009-02-031-2/+3
| | | | llvm-svn: 63671
* If "optimize for size" attribute is set then block non-trivial loop ↵Devang Patel2009-02-031-3/+2
| | | | | | unswitches but allow trivial loop unswitches. llvm-svn: 63670
* DebugLoc propgationDale Johannesen2009-02-031-25/+35
| | | | llvm-svn: 63664
* More whitespace fixin'.Bill Wendling2009-02-031-37/+36
| | | | llvm-svn: 63663
* Whitespace and comment changes. No functionality change.Bill Wendling2009-02-032-25/+12
| | | | llvm-svn: 63660
* teach "convert from scalar" to handle loads of fca's.Chris Lattner2009-02-031-2/+29
| | | | llvm-svn: 63659
* refactor the interface to ConvertUsesOfLoadToScalar, Chris Lattner2009-02-031-34/+35
| | | | | | renaming it to ConvertScalar_ExtractValue llvm-svn: 63658
* DebugLoc propagation. done with file.Dale Johannesen2009-02-031-179/+226
| | | | llvm-svn: 63656
* Remove dead code.Devang Patel2009-02-031-1/+0
| | | | llvm-svn: 63653
* convert ConvertUsesOfLoadToScalar to use IRBuilder,Chris Lattner2009-02-031-37/+33
| | | | | | no functionality change. llvm-svn: 63652
* switch ConvertScalar_InsertValue to use an IRBuilder, no Chris Lattner2009-02-031-30/+32
| | | | | | functionality change. llvm-svn: 63651
* DebugLoc propagation. 2/3 through file.Dale Johannesen2009-02-032-346/+409
| | | | llvm-svn: 63650
* 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). llvm-svn: 63649
* 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. llvm-svn: 63643
* 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. llvm-svn: 63642
* First initialize DAG otherwise dwarf writer is used uninitialized.Devang Patel2009-02-032-2/+2
| | | | | | Duncan spotted this. Thanks! llvm-svn: 63641
* 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. llvm-svn: 63638
* 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. llvm-svn: 63632
* APInt'fy SimplifyDemandedVectorElts so it can analyze vectors with more than ↵Evan Cheng2009-02-031-49/+54
| | | | | | 64 elements. llvm-svn: 63631
* add another case of undefined behavior without crashing, PR3466.Chris Lattner2009-02-031-2/+3
| | | | llvm-svn: 63620
* Revert r63600. It didn't fix the bug, it just moved it a bit.Nick Lewycky2009-02-031-7/+2
| | | | llvm-svn: 63618
* Teach AliasAnalysis that a bunch of the atomic intrinsics only dereference ↵Owen Anderson2009-02-031-0/+22
| | | | | | their arguments. llvm-svn: 63616
* Update the callgraph when replacing InvokeInst with CallInst when inlining.Nick Lewycky2009-02-031-3/+8
| | | | llvm-svn: 63600
* Explicitly pass in debug location information to BuildMI.Bill Wendling2009-02-034-4/+6
| | | | llvm-svn: 63599
* Pass in something sensible for the debug location information when creating theBill Wendling2009-02-033-6/+52
| | | | | | initial PHI nodes of the machine function. llvm-svn: 63598
* 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 llvm-svn: 63597
* 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; } llvm-svn: 63596
* Fill in some missing DL propagation in getNode()s.Dale Johannesen2009-02-031-22/+24
| | | | llvm-svn: 63595
* Use SDL->getCurDebugLoc() instead of unknown loc for landing pads.Bill Wendling2009-02-031-1/+1
| | | | llvm-svn: 63594
* 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. llvm-svn: 63593
* Alphabetize includes.Bill Wendling2009-02-031-1/+1
| | | | llvm-svn: 63591
* 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. llvm-svn: 63590
* 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. llvm-svn: 63589
* Propagate debug loc info during SDNode -> machine instr creation.Bill Wendling2009-02-031-6/+9
| | | | llvm-svn: 63585
* 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. llvm-svn: 63584
* Propagation in TargetLowering. Includes passing a DLDale Johannesen2009-02-035-113/+132
| | | | | | into SimplifySetCC which gets called elsewhere. llvm-svn: 63583
* 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. llvm-svn: 63577
* 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. llvm-svn: 63575
* Last DebugLoc propagation for this file.Dale Johannesen2009-02-021-180/+204
| | | | llvm-svn: 63574
* More DebugLoc propagation. This should be everythingDale Johannesen2009-02-021-100/+112
| | | | | | except LegalizeOp itself. llvm-svn: 63560
* 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. llvm-svn: 63559
* 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. llvm-svn: 63558
* DebugLoc propagation. ExpandOp and PromoteOp,Dale Johannesen2009-02-021-307/+330
| | | | | | among others. llvm-svn: 63555
OpenPOWER on IntegriCloud