aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2009-04-09Fix pointer casting problem.Nick Lewycky
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68668 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-09Don't copy the operand of a SwitchInst into virtual registers asDan Gohman
eagerly. This helps avoid CopyToReg nodes in some cases where they aren't needed, and also helps subsequent optimizer heuristics in cases where the extra nodes would cause the node to appear to have multiple results. This doesn't have a significant impact currently; it'll help an upcoming change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68667 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-09Fix grammaros in comments.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68666 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-09Fixed compiler warning.Misha Brukman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68664 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-09Add sys::Path::makeAbsolute().Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68663 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-08Fix BitstreamReader's GetCurrentBitNo to return the correct bit number, and ↵Douglas Gregor
stop JumpToBit from covering up its mistakes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68648 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-08If subprogram type is not tagged as DW_TAG_subroutine_type then use it ↵Devang Patel
directly as a return value type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68647 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-08Re-apply 68552.Rafael Espindola
Tested by bootstrapping llvm-gcc and using that to build llvm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68645 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-08Add testcase for PR3795.Bob Wilson
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68620 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-08Fix PR3795: Apply Dan's suggested fix forBob Wilson
ARMTargetLowering::isLegalAddressingMode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68619 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-08Accommodate empty string for build type. This was previously causing an errorTed Kremenek
when generating an Xcode project using the CMake files (thanks to Doug Gregor for identifying the issue). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68618 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-08Use 8 instead of CHAR_BITDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68616 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-08Soft float support for FREM.Duncan Sands
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68614 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-08* Fixed calls to APInt ctor to work for negative values on Darwin/x86Misha Brukman
* Converted C-style casts to C++-style casts git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68613 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-08Add BitstreamWriter::GetCurrentBitNo, to report where we are in the output ↵Douglas Gregor
bitstream git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68610 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-08Soft float support for undef. Reported by Xerxes Rånby.Duncan Sands
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68607 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-08Avoid a hard coded constant.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68603 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-08Emit .line debug directives for stoppoints. The debug location is retrieved ↵Sanjiv Gupta
by the MachineInstr itself, rather than by custom handling the DBG_STOPPOINT nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68602 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-08Instcombine should not promote whole computation trees to "strange"Chris Lattner
integer types, unless they are already strange. This prevents it from turning the code produced by SROA into crazy libcalls and stuff that the code generator can't handle. In the attached example, the result was an i96 multiply that caused the x86 backend to assert. Note that if TargetData had an idea of what the legal types are for a target that this could be used to stop instcombine from introducing i64 muls, as Scott wanted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68598 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-08Handle indirect function calls.Sanjiv Gupta
Every function has the address of its frame in the beginning of code section. The frame address is retrieved and used to pass arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68597 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-08disable this code for now, re-breaking PR2975, but fixingChris Lattner
a testcase I'm about to attach to that pr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68592 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-08Remove AllowInverse: it leaks memory and is not the rightChris Lattner
abstraction for CommandLine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68588 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-08Fully escape the grep string for this test.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68580 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-08Update this test for recent codegen improvements. CodeGen is nowDan Gohman
using an lea in place of a mov and an add for this test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68579 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-08change printStringChar to emit characters as unsigned char instead of char,Chris Lattner
avoiding sign extension for the top octet. For "negative" chars, we'd print stuff like: .asciz "\702... now we print: .asciz "\302... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68577 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-08Implement support for using modeling implicit-zero-extension on x86-64Dan Gohman
with SUBREG_TO_REG, teach SimpleRegisterCoalescing to coalesce SUBREG_TO_REG instructions (which are similar to INSERT_SUBREG instructions), and teach the DAGCombiner to take advantage of this on targets which support it. This eliminates many redundant zero-extension operations on x86-64. This adds a new TargetLowering hook, isZExtFree. It's similar to isTruncateFree, except it only applies to actual definitions, and not no-op truncates which may not zero the high bits. Also, this adds a new optimization to SimplifyDemandedBits: transform operations like x+y into (zext (add (trunc x), (trunc y))) on targets where all the casts are no-ops. In contexts where the high part of the add is explicitly masked off, this allows the mask operation to be eliminated. Fix the DAGCombiner to avoid undoing these transformations to eliminate casts on targets where the casts are no-ops. Also, this adds a new two-address lowering heuristic. Since two-address lowering runs before coalescing, it helps to be able to look through copies when deciding whether commuting and/or three-address conversion are profitable. Also, fix a bug in LiveInterval::MergeInClobberRanges. It didn't handle the case that a clobber range extended both before and beyond an existing live range. In that case, multiple live ranges need to be added. This was exposed by the new subreg coalescing code. Remove 2008-05-06-SpillerBug.ll. It was bugpoint-reduced, and the spiller behavior it was looking for no longer occurrs with the new instruction selection. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68576 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-07Revert prev. patch for now.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68569 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-07Temporarily revert r68552. This was causing a failure in the self-hosting LLVMBill Wendling
builds. --- Reverse-merging (from foreign repository) r68552 into '.': U test/CodeGen/X86/tls8.ll U test/CodeGen/X86/tls10.ll U test/CodeGen/X86/tls2.ll U test/CodeGen/X86/tls6.ll U lib/Target/X86/X86Instr64bit.td U lib/Target/X86/X86InstrSSE.td U lib/Target/X86/X86InstrInfo.td U lib/Target/X86/X86RegisterInfo.cpp U lib/Target/X86/X86ISelLowering.cpp U lib/Target/X86/X86CodeEmitter.cpp U lib/Target/X86/X86FastISel.cpp U lib/Target/X86/X86InstrInfo.h U lib/Target/X86/X86ISelDAGToDAG.cpp U lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp U lib/Target/X86/AsmPrinter/X86IntelAsmPrinter.cpp U lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.h U lib/Target/X86/AsmPrinter/X86IntelAsmPrinter.h U lib/Target/X86/X86ISelLowering.h U lib/Target/X86/X86InstrInfo.cpp U lib/Target/X86/X86InstrBuilder.h U lib/Target/X86/X86RegisterInfo.td git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68560 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-07Right now DBG_LABEL are required for llvm.dbg.region_start and ↵Devang Patel
llvm.dbg.region_end in non-fast mode also. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68559 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-07Reduce code duplication on the TLS implementation.Rafael Espindola
This introduces a small regression on the generated code quality in the case we are just computing addresses, not loading values. Will work on it and on X86-64 support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68552 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-07Don't attempt to handle aggregate argument values in FastISel; letDan Gohman
SelectionDAG do those. This fixes PR3955. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68546 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-07PR2985 / <rdar://problem/6584986>Jim Grosbach
When compiling in Thumb mode, only the low (R0-R7) registers are available for most instructions. Breaking the low registers into a new register class handles this. Uses of R12, SP, etc, are handled explicitly where needed with copies inserted to move results into low registers where the rest of the code generator can deal with them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68545 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-07Remove ccc now. Radar 6737767Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68544 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-07fix style.Torok Edwin
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68542 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-07Use 'name' instead of 'href'.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68534 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-07Fix verification failure.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68531 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-07Offer an explanation of why building LLVM-GCC with objdir == srcdir doesn'tBill Wendling
work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68530 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-07Another reformatting. No change in docs.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68528 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-07Another attempt at fixing PR2975.Torok Edwin
Types can have references to eachother, so we can't just call destroy on them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68523 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-07fix comment to reflect the implementation I ended up settling on.Chris Lattner
Thanks to Duncan for noticing this git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68518 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-07fix rdar://6762290, a crash compiling cxx filt with clang.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68500 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-07Add an API for the bitstream reader to read blobs and returnChris Lattner
them by reference, instead of packing each byte into a smallvector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68486 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-07remove empty sectionChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68485 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-07Add svn:ignore properties.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68479 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-06stub out code for reading record with blobs as blobs. Not active yet.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68472 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-06allow clients to look up abbrev id'sChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68471 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-06Add a new EmitRecordWithBlob API that allows a blob to be emitted Chris Lattner
without converting each byte to a uint64_t to stick in a SmallVector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68469 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-06add a new Blob encoding abbreviation for bitcode files that emitsChris Lattner
elements in a form that is efficient for the reader to just get a pointer in memory and start reading. APIs to do efficient reading and writing are still todo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68465 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-06Handle 'a' modifier in ARM inline assembly.Bob Wilson
Patch by Richard Pennington. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68464 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-06split ReadAbbreviatedLiteral out of ReadAbbreviatedField.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68463 91177308-0d34-0410-b5e6-96231b3b80d8