summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* Fix spelling noticed by Duncan.Chandler Carruth2013-02-251-3/+3
| | | | llvm-svn: 176023
* Fix the root cause of PR15348 by correctly handling alignment 0 onChandler Carruth2013-02-254-0/+38
| | | | | | | | | | | | | | | | | | | | | | | | memory intrinsics in the SDAG builder. When alignment is zero, the lang ref says that *no* alignment assumptions can be made. This is the exact opposite of the internal API contracts of the DAG where alignment 0 indicates that the alignment can be made to be anything desired. There is another, more explicit alignment that is better suited for the role of "no alignment at all": an alignment of 1. Map the intrinsic alignment to this early so that we don't end up generating aligned DAGs. It is really terrifying that we've never seen this before, but we suddenly started generating a large number of alignment 0 memcpys due to the new code to do memcpy-based copying of POD class members. That patch contains a bug that rounds bitfield alignments down when they are the first field. This can in turn produce zero alignments. This fixes weird crashes I've seen in library users of LLVM on 32-bit hosts, etc. llvm-svn: 176022
* Make pseudos FEXT_CCRX16_ins and FEXT_CCRXI16_ins into custom emitters.Reed Kotler2013-02-255-69/+70
| | | | llvm-svn: 176007
* DIBuilder: support structs with vtable pointers in the same way as classesDavid Blaikie2013-02-252-12/+18
| | | | llvm-svn: 176004
* Make psuedo FEXT_T8I816_ins into a custom emitter.Reed Kotler2013-02-245-61/+39
| | | | llvm-svn: 176002
* Fix PR14364.Bill Schmidt2013-02-244-20/+27
| | | | | | | | | | | This removes a const_cast hack from PPCRegisterInfo::hasReservedSpillSlot(). The proper place to save the frame index for the CR spill slot is in the PPCFunctionInfo object, not the PPCRegisterInfo object. No new test cases, as this just reimplements existing function. Existing tests such as test/CodeGen/PowerPC/crsave.ll are sufficient. llvm-svn: 175998
* CVP: If we have a PHI with an incoming select, try to skip the select.Benjamin Kramer2013-02-242-5/+44
| | | | | | | | | | This is a common pattern with dyn_cast and similar constructs, when the PHI no longer depends on the select it can often be turned into a simpler construct or even get hoisted out of the loop. PR15340. llvm-svn: 175995
* Fix invalid IR in test, missing incoming value for PHI node.Benjamin Kramer2013-02-241-1/+1
| | | | llvm-svn: 175994
* TypoFrancois Pichet2013-02-241-1/+1
| | | | llvm-svn: 175991
* Revert r169638 because it broke Mesa llvmpipe tests.Nadav Rotem2013-02-243-8/+3
| | | | | | Fix PR15239. llvm-svn: 175985
* Make psuedo FEXT_T8I816_ins a custom inserter. It should be expandedReed Kotler2013-02-244-22/+34
| | | | | | as early as possible; which means during instruction selection. llvm-svn: 175984
* Add a use of an otherwise unused variable to remove a warning in non-AssertsCameron Zwarich2013-02-241-0/+1
| | | | | | builds. llvm-svn: 175981
* TwoAddressInstructionPass::tryInstructionTransform() only potentially returnsCameron Zwarich2013-02-241-5/+4
| | | | | | | true when shouldOnlyCommute is false, so we can remove code that checks otherwise. llvm-svn: 175980
* TwoAddrInstructionPass::tryInstructionTransform() has a case where it callsCameron Zwarich2013-02-241-5/+10
| | | | | | | | | | | | | | | | itself recursively with a new instruction that has not been finalized, in order to determine whether to keep the instruction. On 'make check' and test-suite the only cases where the recursive invocation made any transformations were simple instruction commutations, so I am restricting the recursive invocation to do only this. The other cases wouldn't work correctly when updating LiveIntervals, since the new instructions don't have slot indices and LiveIntervals hasn't yet been updated. If the other transformations were actually triggering in any test case it would be possible to support it with a lot of effort, but since they don't it's not worth it. llvm-svn: 175979
* Add new base instruction def for cmpi, cmp, slt and sltu so that def/usesReed Kotler2013-02-231-5/+10
| | | | | | proper. Fixed this already a few days ago for slti. llvm-svn: 175975
* TargetInstrInfo::commuteInstruction() doesn't actually return a new instructionCameron Zwarich2013-02-231-13/+3
| | | | | | | unless it was requested to with an optional parameter that defaults to false, so we don't need to handle that case in TwoAddressInstructionPass. llvm-svn: 175974
* Add global structure vectorization to docsRenato Golin2013-02-231-0/+19
| | | | llvm-svn: 175965
* Some more tests for the global structure vectorizerRenato Golin2013-02-231-20/+596
| | | | llvm-svn: 175964
* X86: Disable cmov-memory patterns on subtargets without cmov.Benjamin Kramer2013-02-232-6/+19
| | | | | | Fixes PR15115. llvm-svn: 175962
* Make some fixes for LiveInterval repair with debug info. Debug valueCameron Zwarich2013-02-232-2/+6
| | | | | | MachineInstrs don't have a slot index. llvm-svn: 175961
* Fix a bug with the LiveIntervals updating in the two-address pass found byCameron Zwarich2013-02-231-1/+1
| | | | | | running ASCI_Purple/SMG2000 in the test-suite. llvm-svn: 175957
* Make TwoAddressInstructionPass::sink3AddrInstruction() LiveIntervals-aware.Cameron Zwarich2013-02-231-15/+34
| | | | llvm-svn: 175956
* Make rescheduleMIBelowKill() and rescheduleKillAboveMI() LiveIntervals-aware inCameron Zwarich2013-02-231-30/+85
| | | | | | | | TwoAddressInstructionPass. The code in rescheduleMIBelowKill() is a bit tricky, since multiple instructions need to be moved down, one-at-a-time, in reverse order. llvm-svn: 175955
* Expand pseudos/macros for Selt. This is the last of the complexReed Kotler2013-02-235-10/+93
| | | | | | macros.The rest is some small misc. stuff. llvm-svn: 175950
* ARM: Convenience aliases for 'srs*' instructions.Jim Grosbach2013-02-235-0/+97
| | | | | | | | Handle an implied 'sp' operand. rdar://11466783 llvm-svn: 175940
* Fixed a careless mistake.Michael Gottesman2013-02-231-1/+1
| | | | | | rdar://13273675. llvm-svn: 175939
* Use getSplitDebugFilename when constructing the skeleton cu andEric Christopher2013-02-222-5/+3
| | | | | | update testcase accordingly to give the correct name to the cu. llvm-svn: 175934
* Add a field to the compile unit of where we plan on splitting outEric Christopher2013-02-223-4/+10
| | | | | | | the debug info for -gsplit-dwarf so we can encode that location in the skeleton cu. llvm-svn: 175933
* Add a TODO and explain when we can get rid of the isMain field.Eric Christopher2013-02-222-2/+2
| | | | llvm-svn: 175932
* Formatting.Eric Christopher2013-02-221-1/+1
| | | | llvm-svn: 175931
* SelectionDAG compile time improvement.Nadav Rotem2013-02-221-0/+19
| | | | | | | | One of the phases of SelectionDAG is LegalizeVectors. We don't need to sort the DAG and copy nodes around if there are no vector ops. Speeds up the compilation time of SelectionDAG on a big scalar workload by ~8%. llvm-svn: 175929
* [mips] Emit call16 operator instead of got_disp. The former allows lazy binding.Akira Hatanaka2013-02-223-17/+30
| | | | llvm-svn: 175920
* Fix test by matching movaps instead of AVX-only vmovapsPeter Collingbourne2013-02-221-2/+2
| | | | llvm-svn: 175914
* x86_64: designate most general purpose and SSE registers as callee save ↵Peter Collingbourne2013-02-223-21/+52
| | | | | | under coldcc llvm-svn: 175911
* Revert "Test commit"Peter Collingbourne2013-02-221-1/+0
| | | | llvm-svn: 175910
* Test commitPeter Collingbourne2013-02-221-0/+1
| | | | llvm-svn: 175909
* An Optional<T> is pod-like if the inner type is.Benjamin Kramer2013-02-221-0/+6
| | | | llvm-svn: 175908
* Remove unused CHECK lines copied from another testPete Cooper2013-02-221-8/+0
| | | | llvm-svn: 175905
* More tests to global struct vectorizerRenato Golin2013-02-221-0/+146
| | | | llvm-svn: 175898
* Made it more explicit that the self-referential llvm.loop identifier metadata Pekka Jaaskelainen2013-02-221-1/+7
| | | | | | should be unique for each loop. llvm-svn: 175888
* R600/SI: Add pattern for sign extension of i1 to i32.Michel Danzer2013-02-221-0/+5
| | | | | | | | | 16 more little piglits with radeonsi. NOTE: This is a candidate for the Mesa stable branch. Reviewed-by: Tom Stellard <thomas.stellard@amd.com> llvm-svn: 175887
* R600/SI: Add pattern for logical or of i1 values.Michel Danzer2013-02-221-0/+4
| | | | | | | | | 24 more little piglits with radeonsi. NOTE: This is a candidate for the Mesa stable branch. Reviewed-by: Tom Stellard <thomas.stellard@amd.com> llvm-svn: 175886
* R600/SI: Add pattern for fceil.Michel Danzer2013-02-221-1/+3
| | | | | | | | | 9 more little piglits with radeonsi. NOTE: This is a candidate for the Mesa stable branch. Reviewed-by: Tom Stellard <thomas.stellard@amd.com> llvm-svn: 175885
* Make ARMAsmPrinter generate the correct alignment specifier syntax in ↵Kristof Beyls2013-02-2228-409/+408
| | | | | | | | | instructions. The Printer will now print instructions with the correct alignment specifier syntax, like vld1.8 {d16}, [r0:64] llvm-svn: 175884
* Use references to attribute groups on the call/invoke instructions.Bill Wendling2013-02-2240-158/+248
| | | | | | | Listing all of the attributes for the callee of a call/invoke instruction is way too much and makes the IR unreadable. Use references to attributes instead. llvm-svn: 175877
* Fix a nomenclature mistake. Slt->Slti in the functions. The "i" refersReed Kotler2013-02-222-8/+8
| | | | | | to the immediate operand of sli or cmp function. llvm-svn: 175865
* Expand mips16 SelT form pseudso/macros.Reed Kotler2013-02-2210-4/+166
| | | | llvm-svn: 175862
* Fix isa<> check which could never be true.Pete Cooper2013-02-222-1/+33
| | | | | | | | | | | | It was incorrectly checking a Function* being an IntrinsicInst* which isn't possible. It should always have been checking the CallInst* instead. Added test case for x86 which ensures we only get one constant load. It was 2 before this change. rdar://problem/13267920 llvm-svn: 175853
* Remove code copied from GenRegisterInfo.inc.Andrew Trick2013-02-222-57/+0
| | | | | | | | There's no apparent reason this code was copied from generated source into a .cpp. It sets a bad example for those working on other targets and trying to understand the register info API. llvm-svn: 175849
* Code cleanup: pass Offset by pointer to parseInstruction to more explicitlyEli Bendersky2013-02-221-29/+33
| | | | | | | convey that it's a INOUT argument. Also, if parsing of entry instructions fails, don't push the entry. llvm-svn: 175847
OpenPOWER on IntegriCloud