aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2011-05-28Add SplitAnalysis::getNumLiveBlocks().Jakob Stoklund Olesen
It is important that this function returns the same number of live blocks as countLiveBlocks(CurLI) because live range splitting uses the number of live blocks to ensure it is making progress. This is in preparation of supporting duplicate UseBlock entries for basic blocks that have a virtual register live-in and live-out, but not live-though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132244 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-28Change the set of callee-saved registers for non-MIPS32 architectures specifiedAkira Hatanaka
in MipsRegisterInfo::getCalleeSavedRegs so that both registers paired for a double precision register get saved. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132243 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-28Implement the 'M' output modifier for arm inline asm. This is fairlyEric Christopher
register allocation dependent and will occasionally break. WIP in the register allocator to model paired/etc registers. rdar://9119939 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132242 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-28Add missing newlines.Chad Rosier
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132241 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-28Define a wrapper node for target constant nodes (tglobaladdr, etc.).Akira Hatanaka
Need this to prevent emitting illegal conditional move instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132240 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-28Select DW_AT_const_value size based on global variable size.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132239 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-28Add 132187 back now that the real problem is fixed.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132238 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-28Fix test cases that were previously using grep to use FileCheckChad Rosier
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132237 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-28Fix the root cause of the bootstrap failure:Rafael Espindola
There was no way to check if a given register/mode pair was valid. We now return an error code (-2) instead of asserting. If anyone thinks that an assert at this point is really needed, we can autogen a hasValidDwarfRegNum instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132236 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27Fix the remaining atomic intrinsics to use the right register classes on Thumb2,Cameron Zwarich
and add some basic tests for them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132235 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27Stub out support for Win64-style exceptions. Note that this is merely usingCharles Davis
the Win64 EH mechanism to implement GCC-style exceptions. LLVM supports hardly anything else at this point! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132234 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27ARM asm parser wasn't able to parse a "mov" instruction while in ThumbBruno Cardoso Lopes
mode (only the "mov.w" variant). Now, when parsing "mov" in thumb mode, default to the Thumb 1 versions/encodings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132233 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27It looks like 132187 might have broken the llvm-gcc bootstrap. Revert while ↵Rafael Espindola
I check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132230 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27Force a triple to make this test pass on Darwin.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132228 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27Clean out the 2.9 Release Notes. Mostly limited to What's New in LLVMChad Rosier
and enhancements in sub-project status updates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132227 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27Add a GR32_NOREX_NOSP register class and fix a bug where ↵Cameron Zwarich
getMatchingSuperRegClass() was saying that the matching superregister class of GR32_NOREX in GR64_NOREX_NOSP is GR64_NOREX, which drops the NOSP constraint. This fixes PR10032. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132225 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27Fix a regression I recently introduced by removing DwarfRegNum ofRafael Espindola
subregisters: When a value is in a subregister, at least report the location as being the superregister. We should extend the .td files to encode the bit range so that we can produce a DW_OP_bit_piece. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132224 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27Make size computation less brittle.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132222 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27Add the suffix to the Win64 EH data sections' names if given. Add a test forCharles Davis
this. XFAIL'd, because the COFF AsmParser can't handle .section yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132220 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27Refactor getActionType and getTypeToTransformTo ; place all of the 'decision'Nadav Rotem
code in one place. Re-apply 131534 and fix the multi-step promotion of integers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132217 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27Attempt to preserve debug line info in LICM; as the comment in the code ↵Eli Friedman
says, it's hard to pick good line numbers for this transformation, but something is better than nothing. rdar://9143729 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132215 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27Typo is test caseChad Rosier
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132214 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27Make room for register allocation to improve.Jakob Stoklund Olesen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132213 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27Add change of crc32 intrinsic to release notesChad Rosier
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132212 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27Don't use movw / movt for iOS static codegen for now to workaround some ↵Evan Cheng
tools issues. rdar://9514789 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132211 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27Delete a test that is no longer relevant.Jakob Stoklund Olesen
According to PR2536, the old spiller had trouble with the IMPLICIT_DEF in this code: %reg1028<def> = MOV16rm %reg0, 1, %reg0, <ga:g_5>, Mem:LD(2,2) [g_5 + 0] %reg1039<def> = IMPLICIT_DEF %reg1038<def> = INSERT_SUBREG %reg1039, %reg1028, 2 %reg1025<def> = AND32ri %reg1038, 65534, %%EFLAGS<imp-def> However, today we emit a zero-extending load instead: %vreg10<def> = MOVZX32rm16 %noreg, 1, %noreg, <ga:@g_5>, %noreg; %mem:LD2[@g_5] GR32:%vreg10 %vreg0<def> = AND32ri %vreg10, 65534, %%EFLAGS<imp-def,dead>; %GR32:%vreg0,%vreg10 This makes the test pointless since it no longer creates the spiller hazard. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132210 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27CRC32 intrinsics were renamed at revision 132163. This submissionChad Rosier
fixes aliasing issues with the old and new names as well as adds test cases for the auto-upgrader. Fixes rdar 9472944. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132207 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27Keep this simple. Use DIType to get signness and size of a type. Based on ↵Devang Patel
size, select appropraite form. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132206 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27Add a parameter to the Win64 EH section getters to get a section with aCharles Davis
suffix (e.g. .xdata$myfunc). The suffix part isn't implemented yet, but I'll get to it in the next patch. Fix up all callers of the affected functions. Make them pass said suffix to the function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132205 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27Add iOS testEvan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132203 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27Update this comment.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132202 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27Don't sink or hoist debug info instrinsics; it isn't useful. This also ↵Eli Friedman
prevents LICM sinking from erasing debug intrinsics which don't dominate any exit block of the loop. rdar://9143943 . git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132201 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27Fix the inliner to maintain the current de facto invoke semantics:John McCall
- the selector for the landing pad must provide all available information about the handlers, filters, and cleanups within that landing pad - calls to _Unwind_Resume must be converted to branches to the enclosing lpad so as to avoid re-entering the unwinder when the lpad claimed it was going to handle the exception in some way This is quite specific to libUnwind-based unwinding. In an effort to not interfere too badly with other unwinders, and with existing hacks in frontends, this only triggers on _Unwind_Resume (not _Unwind_Resume_or_Rethrow) and does nothing with selectors if it cannot find a selector call for either lpad. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132200 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27Delete MethodBodies that only filtered reserved registers.Jakob Stoklund Olesen
The register allocators know to filter reserved registers from the allocation orders, so we don't need all of this boilerplate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132199 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27Handle signed types gracefully.Devang Patel
This fixes regressions reported by buildbots as a fallout of r132193. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132197 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27And fix the test in r132194.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132196 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27Oops, wasn't intending to commit this. Partial revert of r132194.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132195 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27Fix a silly mistake (which trips over an assertion) in r132099. rdar://9515076Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132194 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27Select DW_AT_const_value size based on variable size.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132193 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27Remove DwarfRegNum from the individual bits of the condition register.Rafael Espindola
These should be DW_OP_bit_piece of CR (64). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132192 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27Remove DwarfRegNum from CARRY. I should be encoded with DW_OP_bit_piece.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132190 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27Assorted fixes for Win64 EH unwind info emission:Charles Davis
- Flip order of bitfields. This gets our output matching GAS. - Handle case where the end of the prolog wasn't specified. - If the resulting unwind info struct is less than 8 bytes, pad to 8 bytes. Add a test for the latter two. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132188 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27Remove dwarf numbers from subregs. We should use DW_OP_bit_piece toRafael Espindola
refer to them. I tested this with both check-all and the gdb testsuite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132187 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27InstCombine: Make switch folding with equality compares more aggressive by ↵Benjamin Kramer
trying instsimplify on the arm where we know the compared value. Stuff like "x == y ? y : x&y" now folds into "x&y". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132185 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27Fix PR10029 - VerifyCoalescing failure on patterns_dfa.c of 445.gobmk.Cameron Zwarich
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132181 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27Add a test for Win64 EH unwind information emission.Charles Davis
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132180 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27Make the branch encoding for tBcc more obvious that it's a 4-byte opcodeEric Christopher
followed by a conditional and imm8. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132179 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27Fix comment.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132178 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27Start keeping track of where the various unwind instructions are in the prolog.Charles Davis
Use them to calculate the offset inside the prolog. Emit this value when emitting the unwind codes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132177 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-27Add missing break statements. Align UNWIND_INFO and RUNTIME_FUNCTION structsCharles Davis
to 4 bytes. I'm surprised no one caught the missing break statements. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132176 91177308-0d34-0410-b5e6-96231b3b80d8