summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* 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-032-7/+39
| | | | | | | | | | | | | | | | | | | 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
* this produces an undefined result, just check that the alloca is goneChris Lattner2009-02-031-1/+1
| | | | | | and that sroa doesn't crash. llvm-svn: 63637
* Fix PR3411. When replacing values, nodes are analyzedDuncan Sands2009-02-032-5/+37
| | | | | | | | | 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-032-49/+73
| | | | | | 64 elements. llvm-svn: 63631
* add a method to BumpPtrAllocator that allows allocating elements Chris Lattner2009-02-031-0/+14
| | | | | | with a specified alignment. llvm-svn: 63629
* Add LLVM plugin for gold.Nick Lewycky2009-02-034-0/+377
| | | | llvm-svn: 63623
* Regenerate configure.Nick Lewycky2009-02-031-26/+56
| | | | llvm-svn: 63622
* Add the ability to pass the path to binutils source to configure. This isNick Lewycky2009-02-032-0/+21
| | | | | | needed to build the LLVM gold plugin. llvm-svn: 63621
* add another case of undefined behavior without crashing, PR3466.Chris Lattner2009-02-032-2/+12
| | | | llvm-svn: 63620
* Revert r63600. It didn't fix the bug, it just moved it a bit.Nick Lewycky2009-02-032-39/+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-032-3/+40
| | | | 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-032-2/+9
| | | | | | 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-032-21/+73
| | | | | | | | | | | | | | 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
* Delete these two tests. They are specific to x86-64, and there's noDan Gohman2009-02-032-42/+0
| | | | | | | | | reliable way to do this with the current dejagnu infrastructure. If someone can figure out how to fix these tests so that they test what they are intended to test without spuriously failing on any popular platforms, they are invited to reinstate them. llvm-svn: 63592
* Alphabetize includes.Bill Wendling2009-02-031-1/+1
| | | | llvm-svn: 63591
* rearrange how SRoA handles promotion of allocas to vectors.Chris Lattner2009-02-033-94/+130
| | | | | | | | | | 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-033-25/+33
| | | | | | | | 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
* this test produces an undefined value, we don't careChris Lattner2009-02-031-1/+1
| | | | | | what it is, but we do want the alloca promoted. llvm-svn: 63587
* 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-038-46/+111
| | | | | | | 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-037-115/+134
| | | | | | into SimplifySetCC which gets called elsewhere. llvm-svn: 63583
* It fails on Linux. XFAIL that machine.Bill Wendling2009-02-031-2/+2
| | | | llvm-svn: 63582
* This is passing for us. Should it have been reenabled?Bill Wendling2009-02-031-2/+1
| | | | llvm-svn: 63580
* Add explicit -march=x86 to these tests so that they don'tDan Gohman2009-02-031-2/+2
| | | | | | default to -march=x86-64 on 64-bit hosts. llvm-svn: 63579
* Use the SubclassData field to hold ExtType, isTrunc, and MemIndexedModeDan Gohman2009-02-032-66/+67
| | | | | | | | 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
* Fix another test to not use -mcpu=yonah with 64-bit code.Dan Gohman2009-02-021-2/+2
| | | | llvm-svn: 63572
* Yonah does not support x86-64. Change the -mcpu value to one that does.Dan Gohman2009-02-021-1/+1
| | | | llvm-svn: 63561
* 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-023-54/+42
| | | | | | | 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-023-4/+22
| | | | | | | | | 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
* Only force SSE level if it is not correct.Torok Edwin2009-02-021-3/+10
| | | | | | Add an assert to check HasX86_64 status. llvm-svn: 63552
* Run dsymutil on darwin, when it is expected, before running gdb test.Devang Patel2009-02-023-1/+12
| | | | llvm-svn: 63548
* Commit missing files.Dale Johannesen2009-02-022-0/+15
| | | | llvm-svn: 63545
* inline SROA::ConvertToScalar, no functionality change.Chris Lattner2009-02-021-20/+14
| | | | llvm-svn: 63544
* More DebugLoc propagation.Dale Johannesen2009-02-021-109/+127
| | | | llvm-svn: 63543
* remove #if 0 code on Bill's request.Torok Edwin2009-02-021-4/+0
| | | | llvm-svn: 63542
* Remove trailing spaces.Duncan Sands2009-02-023-15/+15
| | | | llvm-svn: 63540
* Update hand-crafted VC++ build.Steve Naroff2009-02-021-0/+1
| | | | | | - Add PACKAGE_STRING definition to Windows config.h. llvm-svn: 63539
OpenPOWER on IntegriCloud