summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Identify end of prologue (and beginning of function body) using ↵Devang Patel2011-05-112-44/+40
| | | | | | DW_LNS_set_prologue_end line table opcode. llvm-svn: 131194
* Avoid hoisting spills when looking at a copy from another register that is alsoJakob Stoklund Olesen2011-05-111-7/+16
| | | | | | | | | | | | | about to be spilled. This can only happen when two extra snippet registers are included in the spill, and there is a copy between them. Hoisting the spill creates problems because the hoist will mark the copy for later dead code elimination, and spilling the second register will turn the copy into a spill. <rdar://problem/9420853> llvm-svn: 131192
* Fix encoding of Thumb BLX register instructions. Patch by Koan-Sin Tan.Owen Anderson2011-05-111-4/+8
| | | | llvm-svn: 131189
* Typo and missing checkin from r131186.Andrew Trick2011-05-111-1/+2
| | | | llvm-svn: 131187
* Bugpoint support for miscompilations that result in a crash.Andrew Trick2011-05-112-4/+8
| | | | | | | | | This change allows bugpoint to pinpoint the "opt" pass and bitcode segment responsible for a crash caused by miscompilation. At least it works well for me now, without having to create any custom execution wrappers. llvm-svn: 131186
* Fixes a bug in the DAGCombiner. LoadSDNodes have two values (data, chain).Nadav Rotem2011-05-111-1/+1
| | | | | | | | If there is a store after the load node, then there is a chain, which means that there is another user. Thus, asking hasOneUser would fail. Instead we ask hasNUsesOfValue on the 'data' value. llvm-svn: 131183
* Add custom lowering of X86 vector SRA/SRL/SHL when the shift amount is a ↵Nadav Rotem2011-05-112-11/+80
| | | | | | splat vector. llvm-svn: 131179
* Revert 131172 as it is causing clang to miscompile itself. I will tryRafael Espindola2011-05-113-268/+10
| | | | | | to provide a reduced testcase. llvm-svn: 131176
* Give the 'eh.sjlj.dispatchsetup' intrinsic call the value coming from the setjmpBill Wendling2011-05-114-6/+6
| | | | | | | | intrinsic call. This prevents it from being reordered so that it appears *before* the setjmp intrinsic (thus making it completely useless). <rdar://problem/9409683> llvm-svn: 131174
* Add a late optimization to BranchFolding that hoist common instruction sequencesEvan Cheng2011-05-113-10/+268
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | at the start of basic blocks to their common predecessor. It's actually quite common (e.g. about 50 times in JM/lencod) and has shown to be a nice code size benefit. e.g. pushq %rax testl %edi, %edi jne LBB0_2 ## BB#1: xorb %al, %al popq %rdx ret LBB0_2: xorb %al, %al callq _foo popq %rdx ret => pushq %rax xorb %al, %al testl %edi, %edi je LBB0_2 ## BB#1: callq _foo LBB0_2: popq %rdx ret rdar://9145558 llvm-svn: 131172
* Optimize atomic lock or that doesn't use the result value.Eric Christopher2011-05-102-1/+83
| | | | | | | | Next up: xor and and. Part of rdar://8470697 llvm-svn: 131171
* Fix cmake again.Rafael Espindola2011-05-101-1/+0
| | | | llvm-svn: 131164
* Remove empty file.Nick Lewycky2011-05-101-0/+0
| | | | llvm-svn: 131162
* Avoid a gcc warning.Rafael Espindola2011-05-101-1/+2
| | | | llvm-svn: 131161
* Fix cmake build.Rafael Espindola2011-05-101-0/+1
| | | | llvm-svn: 131160
* Revert r131155 for now. It makes VMCore depend on Analysis and TransformsNick Lewycky2011-05-101-240/+0
| | | | | | headers. llvm-svn: 131159
* Initialize moveTypeModule.Rafael Espindola2011-05-101-2/+2
| | | | llvm-svn: 131157
* Disable my little CopyToReg argument hack with fast-isel. ↵Eli Friedman2011-05-101-2/+3
| | | | | | rdar://problem/9413587 . llvm-svn: 131156
* Add support for plugins add passes to the default set of passes. The ↵David Chisnall2011-05-101-0/+240
| | | | | | | | | | | | | | | standard set of passes used by front ends can now be modified by LLVM plugins, without needing to modify any front ends. Still to do: - Allow replacing / removing passes (infrastructure there, just needs an infrastructure exposed) - Defining sets of passes to be added or removed as a group - Extending the support to allow user-defined groups of optimisations - Allow plugins to be specified for loading automatically (e.g. from plugins.conf or some similar mechanism) Reviewed by Nick Lewycky. llvm-svn: 131155
* Correctly walk through nested and adjacent CALLSEQ_START nodes. NoStuart Hastings2011-05-101-1/+2
| | | | | | | test case; I've only seen this on a release branch, and I can't get it to reproduce on trunk. rdar://problem/7662569 llvm-svn: 131152
* Produce a __debug_frame section on darwin ARM when appropriate.Rafael Espindola2011-05-104-73/+6
| | | | llvm-svn: 131151
* On MachO, unlike ELF, there should be no relocation to produce the CIE pointer.Rafael Espindola2011-05-101-8/+17
| | | | llvm-svn: 131149
* Rename DwarfRequiresRelocationForStmtList toRafael Espindola2011-05-103-3/+3
| | | | | | DwarfRequiresRelocationForSectionOffset as this is not specific to StmtList. llvm-svn: 131148
* The EH symbols are only needed in eh_frame, not debug_frame.Rafael Espindola2011-05-101-2/+2
| | | | llvm-svn: 131146
* Use .cfi_sections to put the unwind info in .debug_frame when possible. WithRafael Espindola2011-05-103-9/+21
| | | | | | | | | this clang will use .debug_frame in, for example, clang -g -c -m32 test.c This matches gcc's behaviour. It looks like .debug_frame is a bit bigger than .eh_frame, but has the big advantage of not being allocated. llvm-svn: 131140
* Refactor lock versions of binary operators to be a little lessEric Christopher2011-05-101-73/+83
| | | | | | cut and paste. llvm-svn: 131139
* First cut at getting debugging support for ARM/MC/ELF/.oJason W Kim2011-05-101-1/+0
| | | | | | | DWARF stuff also gets fixed up by ELFARMAsmBackend::ApplyFixup(), but the offset is not guaranteed to be mod 4 == 0 as in text/data. llvm-svn: 131137
* Fix PR9883. Make sure all caches are invalidated when a live range is repaired.Jakob Stoklund Olesen2011-05-104-4/+8
| | | | | | | | The previous invalidation missed the alias interference caches. Also add a stats counter for the number of repaired ranges. llvm-svn: 131133
* In a debug_frame the cfi offset is to the start of the debug_frame section!Rafael Espindola2011-05-101-3/+7
| | | | llvm-svn: 131129
* Add CFIStartSections to the asm printer. Add an assert that at leastRafael Espindola2011-05-102-0/+20
| | | | | | one of the sections is created. llvm-svn: 131124
* PTX: add PTX 2.3 setting in PTX sub-target.Justin Holewinski2011-05-102-0/+4
| | | | | | Patch by Wei-Ren Chen llvm-svn: 131123
* Add support for producing .deubg_frame sections.Rafael Espindola2011-05-102-46/+63
| | | | llvm-svn: 131121
* Small cleanups.Rafael Espindola2011-05-101-8/+5
| | | | llvm-svn: 131120
* Factor some code into a new EmitFrames method.Rafael Espindola2011-05-104-6/+12
| | | | llvm-svn: 131119
* Remove unused argument.Rafael Espindola2011-05-101-12/+4
| | | | llvm-svn: 131118
* Parsing and plumbing for .cfi_sections.Rafael Espindola2011-05-102-1/+43
| | | | llvm-svn: 131117
* Preserve line number information.Devang Patel2011-05-101-0/+1
| | | | llvm-svn: 131112
* Do not ignore InlinedAt while walking up scope chain to find subprogram node. Devang Patel2011-05-091-1/+8
| | | | llvm-svn: 131106
* Look through struct wrapped types for inline asm statments.Eric Christopher2011-05-092-0/+12
| | | | | | Patch by Evan Cheng. llvm-svn: 131093
* Change a few std::maps to DenseMaps.Dan Gohman2011-05-091-2/+2
| | | | llvm-svn: 131088
* Fix td file comments for Mips.Eric Christopher2011-05-093-3/+7
| | | | | | Patch by Liu <proljc@gmail.com>! llvm-svn: 131086
* Fixed MC encoding for index_align for VLD1/VST1 (single element from one ↵Mon P Wang2011-05-094-2/+60
| | | | | | lane) for size 32 llvm-svn: 131085
* Indent properly, no functionality change.Duncan Sands2011-05-091-12/+12
| | | | llvm-svn: 131082
* Eliminate an unused line to fix a warning.NAKAMURA Takumi2011-05-081-1/+0
| | | | llvm-svn: 131078
* Remove an assertion to fix PR9872.Jakob Stoklund Olesen2011-05-082-1/+6
| | | | | | | | | | | | | | | | | | | | It can happen that a live debug variable is the last use of a sub-register, and the register allocator will pick a larger register class for the virtual register. If the allocated register doesn't support the sub-register index, just use %noreg for the debug variables instead of asserting. In PR9872, a debug variable ends up in the sub_8bit_hi part of a GR32_ABCD register. The register is split and one part is inflated to GR32 and assigned %ESI because there are no more normal uses of sub_8bit_hi. Since %ESI doesn't have that sub-register, substPhysReg asserted. Now it will simply insert a %noreg instead, and the debug variable will be marked unavailable in that range. We don't currently have a way of saying: !"value" is in bits 8-15 of %ESI, I don't know if DWARF even supports that. llvm-svn: 131073
* X86: Add a bunch of peeps for add and sub of SETB.Benjamin Kramer2011-05-081-0/+24
| | | | | | | | | | | | | | | | "b + ((a < b) ? 1 : 0)" compiles into cmpl %esi, %edi adcl $0, %esi instead of cmpl %esi, %edi sbbl %eax, %eax andl $1, %eax addl %esi, %eax This saves a register, a false dependency on %eax (Intel's CPUs still don't ignore it) and it's shorter. llvm-svn: 131070
* Don't force relaxation of AdvanceLoc instructions on OS X. gdb is happy withRafael Espindola2011-05-082-13/+6
| | | | | | | the smaller encoding and this cuts 270336 bytes from a release version of clang and 1246272 bytes from a debug build. llvm-svn: 131067
* Eliminate the ARM sub-register indexes that are not needed by the sources.Jakob Stoklund Olesen2011-05-071-33/+6
| | | | | | | Tablegen will invent its own names for these indexes, and the register file is a bit simpler. llvm-svn: 131059
* The comparision "max(x,y)==x" is equivalent to "x>=y". Since the max isDuncan Sands2011-05-071-10/+56
| | | | | | | often expressed as "x >= y ? x : y", there is a good chance we can extract the existing "x >= y" from it and use that as a replacement for "max(x,y)==x". llvm-svn: 131049
* Fix the non-MC encoding of pkhbt and pkhtb.Eric Christopher2011-05-071-0/+6
| | | | | | Patch by Stephen Hines. llvm-svn: 131045
OpenPOWER on IntegriCloud