summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/SelectionDAG
Commit message (Collapse)AuthorAgeFilesLines
...
* 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. llvm-svn: 81058
* 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. llvm-svn: 80963
* Recognize more opportunities to use SSE min and max instructions,Dan Gohman2009-09-031-0/+13
| | | | | | swapping the operands if necessary. llvm-svn: 80940
* Retype from unsigned to CallingConv::ID accordingly. Approved by Bob Wilson.Sandeep Patel2009-09-022-3/+4
| | | | llvm-svn: 80773
* Remove Offset from ExternalSybmol MachineOperands, this is unused (and at ↵Daniel Dunbar2009-09-011-1/+1
| | | | | | least partly unsupported, in X86 encoding at least). llvm-svn: 80726
* Reapply 79977.Devang Patel2009-08-284-20/+17
| | | | | | Use MDNodes to encode debug info in llvm IR. llvm-svn: 80406
* Add extload expansion for f128Anton Korobeynikov2009-08-261-3/+6
| | | | llvm-svn: 80116
* Revert 79977. It causes llvm-gcc bootstrap failures on some platforms.Devang Patel2009-08-264-17/+20
| | | | llvm-svn: 80073
* Get rid of this horrible "benign race" by exploiting ManagedStatic to initializeOwen Anderson2009-08-251-7/+14
| | | | | | the array on its first access. llvm-svn: 80040
* Update DebugInfo interface to use metadata, instead of special named ↵Devang Patel2009-08-254-20/+17
| | | | | | | | llvm.dbg.... global variables, to encode debugging information in llvm IR. This is mostly a mechanical change that tests metadata support very well. This change speeds up llvm-gcc by more then 6% at "-O0 -g" (measured by compiling InstructionCombining.cpp!) llvm-svn: 79977
* Fix some refactos for iostream changes (in -Asserts mode).Daniel Dunbar2009-08-231-14/+14
| | | | | | - The world needs better C++ refactoring tools, can I get an Amen!? llvm-svn: 79843
* eliminate uses of cerr()Chris Lattner2009-08-236-61/+77
| | | | llvm-svn: 79834
* remove a few DOUTs here and there.Chris Lattner2009-08-236-64/+83
| | | | llvm-svn: 79832
* Change Pass::print to take a raw ostream instead of std::ostream,Chris Lattner2009-08-233-19/+23
| | | | | | update all code that this affects. llvm-svn: 79830
* Add check for completeness. Note that this doesn't actually have any Eli Friedman2009-08-231-1/+1
| | | | | | effect with the way the current code is structured. llvm-svn: 79792
* Rename TargetAsmInfo (and its subclasses) to MCAsmInfo.Chris Lattner2009-08-221-2/+2
| | | | llvm-svn: 79763
* Record variable debug info at ISel time directly.Devang Patel2009-08-224-12/+13
| | | | llvm-svn: 79742
* Reapply r79708 with the appropriate fix for the case that still requires ↵Owen Anderson2009-08-221-2/+6
| | | | | | locking. llvm-svn: 79731
* revert r79708 + r79711Chris Lattner2009-08-221-5/+3
| | | | llvm-svn: 79720
* Actually remove unused static. Previous commit removed trailingEric Christopher2009-08-221-1/+0
| | | | | | whitespace. llvm-svn: 79711
* Remove unused static.Eric Christopher2009-08-221-20/+20
| | | | llvm-svn: 79710
* Ease contention on this lock by noticing that all writes to the VTs array willOwen Anderson2009-08-221-2/+5
| | | | | | | | | be of (dynamically) constant values, so races on it are immaterial. We just need to ensure that at least one write has completed before return the pointer into it. With this change, parllc exhibits essentially no overhead on 403.gcc. llvm-svn: 79708
* Fix typo. Should check both values of RangeUse for 0. Patch by Marius Wachtler.Bill Wendling2009-08-211-1/+1
| | | | llvm-svn: 79649
* Add an x86 peep that narrows TEST instructions to forms that useDan Gohman2009-08-191-0/+11
| | | | | | | a smaller encoding. These kinds of patterns are very frequent in sqlite3, for example. llvm-svn: 79439
* Use the schedule itinerary operand use/def cycle information to adjust ↵David Goodwin2009-08-191-4/+9
| | | | | | dependence edge latency for post-RA scheduling. llvm-svn: 79425
* PR4737: Fix a nasty bug in load narrowing with non-power-of-two types.Eli Friedman2009-08-191-1/+2
| | | | llvm-svn: 79415
* Be tidy and use a break to exit from a switch block rather thanDan Gohman2009-08-181-0/+1
| | | | | | just falling through the end. llvm-svn: 79383
* Legalize the shift amount operand of SRL_PARTS, SHL_PARTS, andDan Gohman2009-08-181-0/+7
| | | | | | SRA_PARTS, as is done for SRL, SHL, and SRA. llvm-svn: 79380
* Remove a bit more cruft from the sjlj moving to a backend pass.Jim Grosbach2009-08-171-9/+0
| | | | llvm-svn: 79272
* Be more clever about regclasses in ScheduleDAGSDNodes::EmitCopyFromReg.Jakob Stoklund Olesen2009-08-161-5/+5
| | | | | | | | If two uses of a CopyFromReg want different regclasses, first try a common sub-class, then fall back on the copy emitted in AddRegisterOperand. There is no need for an assert here. The cross-class joiner usually cleans up nicely. llvm-svn: 79193
* Needs to check whether unaligned load / store of i64 is legal here.Evan Cheng2009-08-151-4/+3
| | | | llvm-svn: 79150
* Unbreak build. Evan, please make sure my changes are correct.Benjamin Kramer2009-08-153-6/+5
| | | | llvm-svn: 79133
* 80 col violations.Evan Cheng2009-08-151-12/+12
| | | | llvm-svn: 79087
* Simplify this code to not depend as much on CurMBB.Dan Gohman2009-08-151-16/+15
| | | | llvm-svn: 79068
* Allow targets to specify their choice of calling conventions perAnton Korobeynikov2009-08-144-5/+17
| | | | | | | | | | libcall. Take advantage of this in the ARM backend to rectify broken choice of CC when hard float is in effect. PIC16 may want to see if it could be of use in MakePIC16Libcall, which works unchanged. Patch by Sandeep! llvm-svn: 79033
* Indentation change.Evan Cheng2009-08-141-2/+1
| | | | llvm-svn: 78978
* Push LLVMContexts through the IntegerType APIs.Owen Anderson2009-08-136-28/+37
| | | | llvm-svn: 78948
* Add callback to allow target to adjust latency of schedule dependency edge.David Goodwin2009-08-131-2/+10
| | | | llvm-svn: 78910
* Add contexts to some of the MVT APIs. No functionality change yet, just the ↵Owen Anderson2009-08-1212-265/+319
| | | | | | infrastructure work needed to get the contexts to where they need to be first. llvm-svn: 78759
* Fix warnings.Owen Anderson2009-08-112-9/+7
| | | | llvm-svn: 78725
* Split EVT into MVT and EVT, the former representing _just_ a primitive type, ↵Owen Anderson2009-08-1118-842/+843
| | | | | | | | while the latter is capable of representing either a primitive or an extended type. llvm-svn: 78713
* Tidy #includes.Dan Gohman2009-08-111-0/+1
| | | | llvm-svn: 78677
* SjLj based exception handling unwinding support. This patch is nasty, brutishJim Grosbach2009-08-112-1/+11
| | | | | | | | | | | | | and short. Well, it's kinda short. Definitely nasty and brutish. The front-end generates the register/unregister calls into the SjLj runtime, call-site indices and landing pad dispatch. The back end fills in the LSDA with the call-site information provided by the front end. Catch blocks are not yet implemented. Built on Darwin and verified no llvm-core "make check" regressions. llvm-svn: 78625
* Fix a bug in the DAGCombiner's handling of multiple linkedDan Gohman2009-08-101-3/+8
| | | | | | | | | | | MERGE_VALUES nodes. Replacing the result values with the operands in one MERGE_VALUES node may cause another MERGE_VALUES node be CSE'd with the first one, and bring its uses along, so that the first one isn't dead, as this code expects. Fix this by iterating until the node is really dead. This fixes PR4699. llvm-svn: 78619
* Fix a bug where DAGCombine was producing an illegal ConstantFPDan Gohman2009-08-101-1/+12
| | | | | | | node after legalize, and remove the workaround code from the ARM backend. llvm-svn: 78615
* Rename MVT to EVT, in preparation for splitting SimpleValueType out into its ↵Owen Anderson2009-08-1021-1772/+1772
| | | | | | own struct type. llvm-svn: 78610
* Start moving TargetLowering away from using full MVTs and towards ↵Owen Anderson2009-08-104-11/+16
| | | | | | SimpleValueType, which will simplify the privatization of IntegerType in the future. llvm-svn: 78584
* Make this comment more closely reflect the code.Dan Gohman2009-08-101-1/+1
| | | | llvm-svn: 78569
* Don't build illegal ops in DAGCombiner::SimplifyBinOpWithSameOpcodeHands().Jakob Stoklund Olesen2009-08-081-1/+3
| | | | | | | | Blackfin supports and/or/xor on i32 but not on i16. Teach DAGCombiner::SimplifyBinOpWithSameOpcodeHands to not produce illegal nodes after legalize ops. llvm-svn: 78497
* Use stripPointerCasts instead of partially rewriting it.Dale Johannesen2009-08-061-4/+2
| | | | llvm-svn: 78350
OpenPOWER on IntegriCloud