summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Reserve the segment registers on x86 to fix verifier failures in any code thatCameron Zwarich2011-05-181-0/+9
| | | | | | uses them. llvm-svn: 131591
* Remove comments as Chris requested.Charles Davis2011-05-181-48/+12
| | | | llvm-svn: 131590
* Remove dead code which tests for boolan flag 'raw' and restore one ↵Johnny Chen2011-05-181-47/+39
| | | | | | indentation level. llvm-svn: 131589
* Added a function to lldb_private::Address:Greg Clayton2011-05-184-35/+77
| | | | | | | | | | | | | | | | addr_t Address::GetCallableLoadAddress (Target *target) const; This will resolve the load address in the Address object and optionally decorate the address up to be able to be called. For all non ARM targets, this just essentially returns the result of "Address::GetLoadAddress (target)". But for ARM targets, it checks if the address is Thumb, and if so, it returns an address with bit zero set to indicate a mode switch to Thumb. This is how we need function pointers to be for return addresses and when resolving function addresses for the JIT. It is also nice to centralize this in one spot to avoid having multiple copies of this code. llvm-svn: 131588
* Reserve r29 on Alpha. This fixes all verifier failures in CodeGen/Alpha.Cameron Zwarich2011-05-181-0/+1
| | | | llvm-svn: 131587
* Handle perfect shuffle case that generates a vrev for vectors of floats.Tanya Lattner2011-05-182-1/+17
| | | | | | Add test case. llvm-svn: 131582
* Third pass at allowing plugins to modify default passes. This time with a ↵Eli Friedman2011-05-183-150/+701
| | | | | | tweak so that we don't depend on an uninitialized argument. llvm-svn: 131581
* Use IRBuilder while simplifying return instruction.Devang Patel2011-05-181-11/+13
| | | | llvm-svn: 131580
* Fix an obvious typo in r131572.Cameron Zwarich2011-05-181-2/+2
| | | | llvm-svn: 131579
* Fix more of PR8825. Now all of CodeGen/ARM passes with VerifyCoalescing ↵Cameron Zwarich2011-05-181-4/+7
| | | | | | turned on. llvm-svn: 131578
* When forming an ICmpZero LSRUse, normalize the non-IV operandDan Gohman2011-05-182-0/+95
| | | | | | | of the comparison, so that the resulting expression is fully normalized. This fixes PR9939. llvm-svn: 131576
* Set debug location while setting insertion point.Devang Patel2011-05-181-0/+1
| | | | llvm-svn: 131575
* After consultation with doug, revert r131515.Alexis Hunt2011-05-181-9/+1
| | | | llvm-svn: 131574
* Revert r121528 as it breaks a simple testcase, which leads to, amongAlexis Hunt2011-05-187-193/+21
| | | | | | other things, libcxx not building. llvm-svn: 131573
* Add some more Win64 EH directives:Charles Davis2011-05-183-0/+64
| | | | | | | | | | | | | - StartChained and EndChained delimit a chained unwind area, which can contain additional operations to be undone if an exception occurs inside of it. - UnwindOnly declares that this function doesn't handle any exceptions. If it has a handler, it's an unwind handler instead of an exception handler. - Lsda declares the location and size of the LSDA, which in the Win64 EH scheme is kept inside the UNWIND_INFO struct. Windows itself ignores the LSDA; it's used by the Language-Specific Handler (the "Personality Function" from DWARF). llvm-svn: 131572
* Spread use of IRBuilder even more.Devang Patel2011-05-181-10/+12
| | | | llvm-svn: 131571
* Revert r131556; it's breaking buildbots/clang tests.Eli Friedman2011-05-183-695/+150
| | | | llvm-svn: 131567
* Use IRBuilder while simplifying switch instruction.Devang Patel2011-05-181-15/+18
| | | | llvm-svn: 131566
* Disassembly of tBcc was wrongly adding 4 to the SignExtend'ed imm8:'0' ↵Johnny Chen2011-05-182-1/+4
| | | | | | immediate operand. llvm-svn: 131565
* Use IRBuilder while simplifying unwind.Devang Patel2011-05-181-7/+9
| | | | llvm-svn: 131561
* Enables vararg functions that pass all arguments via registers to be ↵Chad Rosier2011-05-183-7/+105
| | | | | | optimized into tail-calls when possible. llvm-svn: 131560
* More instcombine cleanup aimed towards improving debug line info.Eli Friedman2011-05-182-25/+22
| | | | llvm-svn: 131559
* Add ARMTargetCodeGenInfo::initDwarfEHRegSizeTable() defining 16 32bit regs.Roman Divacky2011-05-181-0/+16
| | | | llvm-svn: 131558
* An imminent fix to the x86_64 byval logic will expose a flaw in theStuart Hastings2011-05-181-1/+1
| | | | | | | | x86_64 sibcall logic. I've filed PR9943 for the sibcall problem, and this patch alters the testcase to work around the flaw. When PR9943 is fixed, this patch should be reverted. llvm-svn: 131557
* Second pass at allowing plugins to modify default passes. This time without ↵David Chisnall2011-05-183-150/+695
| | | | | | bonus inter-library dependencies. llvm-svn: 131556
* Revise r131553. Just use the type of the input node and forgo the bitcast. ↵Evan Cheng2011-05-181-4/+3
| | | | | | rdar://9449159. llvm-svn: 131555
* Fix an ARMTargetLowering::LowerSELECT bug: legalized result must have same ↵Evan Cheng2011-05-181-1/+3
| | | | | | type as input. Sorry test cases only trigger when dag combine is disabled. rdar://9449178 llvm-svn: 131553
* Use IRBuilder while simplifying terminator.Devang Patel2011-05-181-4/+7
| | | | llvm-svn: 131552
* Use IRBuilder while simplifying unconditional branch.Devang Patel2011-05-181-6/+11
| | | | llvm-svn: 131551
* One more fix to:Greg Clayton2011-05-181-5/+7
| | | | | | | | | | | | bool SectionLoadList::ResolveLoadAddress (addr_t load_addr, Address &so_addr) const; Where if the address is in the last map entry, we need to look it up correctly. My previous fix was incorrect where it looked in the first if there were no addresses in the map that were > load_addr. Now we correctly look in the last entry if our std::map::lower_bound search returns the end of the collection. llvm-svn: 131550
* If the use_thumb is set, pass llvm::Triple::thumb to the ↵Johnny Chen2011-05-181-1/+1
| | | | | | | | | | InstructionLLVM.ctor() unconditionally. Otherwise, pass m_arch.GetMachine(). Followup patch for rdar://problem/9170971. llvm-svn: 131549
* Use IRBuilder while folding two entry PHINode.Devang Patel2011-05-181-6/+8
| | | | llvm-svn: 131548
* Switch more inst insertion in instcombine to IRBuilder.Eli Friedman2011-05-181-10/+6
| | | | llvm-svn: 131547
* Correct typos in TestingGuide.htmlChad Rosier2011-05-181-2/+2
| | | | llvm-svn: 131546
* Set up IRBuilder for use during simplification.Devang Patel2011-05-181-0/+3
| | | | llvm-svn: 131545
* Switch more inst insertion in instcombine to IRBuilder.Eli Friedman2011-05-181-13/+6
| | | | llvm-svn: 131544
* fix typoMatt Beaumont-Gay2011-05-181-1/+1
| | | | llvm-svn: 131543
* Switch inst insertion in instcombine transform to IRBuilder.Eli Friedman2011-05-181-6/+2
| | | | llvm-svn: 131542
* Use IRBuiler while constant folding terminator.Devang Patel2011-05-182-9/+12
| | | | llvm-svn: 131541
* Force a triple on a couple of tests; we don't support fast-isel of ret on Win64.Eli Friedman2011-05-182-2/+2
| | | | llvm-svn: 131540
* Merge pmovzx test case into existing file.Stuart Hastings2011-05-182-15/+19
| | | | llvm-svn: 131539
* Fix inelegant initialization.Stuart Hastings2011-05-181-2/+1
| | | | llvm-svn: 131538
* PTX: add flag to disable mad/fma selectionJustin Holewinski2011-05-185-4/+35
| | | | | | Patch by Dan Bailey llvm-svn: 131537
* Revert commit 131534 since it seems to have broken several buildbots.Duncan Sands2011-05-185-77/+92
| | | | | | | | Original log entry: Refactor getActionType and getTypeToTransformTo ; place all of the 'decision' code in one place. llvm-svn: 131536
* Refactor getActionType and getTypeToTransformTo ; place all of the 'decision'Nadav Rotem2011-05-185-92/+77
| | | | | | code in one place. llvm-svn: 131534
* Now that SrcBits and DestBits always represent the primitive size, ratherDuncan Sands2011-05-181-55/+29
| | | | | | | | | than either the primitive size or the element primitive size (in the case of vectors), simplify the vector logic. No functionality change. There is some distracting churn in the patch because I lined up comments better while there - sorry about that. llvm-svn: 131533
* Tighten up checking of the validity of casts. (1) The IR parser wouldDuncan Sands2011-05-183-32/+40
| | | | | | | | | | | | | | happily accept things like "sext <2 x i32> to <999 x i64>". It would also accept "sext <2 x i32> to i64", though the verifier would catch that later. Fixed by having castIsValid check that vector lengths match except when doing a bitcast. (2) When creating a cast instruction, check that the cast is valid (this was already done when creating constexpr casts). While there, replace getScalarSizeInBits (used to allow more vector casts) with getPrimitiveSizeInBits in getCastOpcode and isCastable since vector to vector casts are now handled explicitly by passing to the element types; i.e. this bit should result in no functional change. llvm-svn: 131532
* Teach getCastOpcode about element-by-element vector casts. For example, "trunc"Duncan Sands2011-05-182-4/+33
| | | | | | | | | | | | | can be used to turn a <4 x i64> into a <4 x i32> but getCastOpcode would assert if you passed these types to it. Note that this strictly extends the previous functionality: if getCastOpcode previously accepted two vector types (i.e. didn't assert) then it still will and returns the same opcode (BitCast). That's because before it would only accept vectors with the same bitwidth, and the new code only touches vectors with the same length. However if two vectors have both the same bitwidth and the same length then their element types have the same bitwidth, so the new logic will return BitCast as before. llvm-svn: 131530
* In r131488 I misunderstood how VREV works. It splits the vector in half and ↵Tanya Lattner2011-05-184-1347/+1353
| | | | | | | | splits each half. Therefore, the real problem was that we were using a VREV64 for a 4xi16, when we should have been using a VREV32. Updated test case and reverted change to the PerfectShuffle Table. llvm-svn: 131529
* Implement implicit exception specifications of destructors.Sebastian Redl2011-05-186-14/+193
| | | | llvm-svn: 131528
OpenPOWER on IntegriCloud