OSDN Git Service
Dan Gohman [Thu, 27 May 2010 20:19:47 +0000 (20:19 +0000)]
When handling raw_ostream errors manually, use clear_error() so that
raw_ostream doesn't try to do its own error handling.
Also, close the raw_ostream before checking for errors so that any
errors that occur during closing are caught by the manual check.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104882
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 27 May 2010 20:17:28 +0000 (20:17 +0000)]
When handling raw_ostream errors manually, use clear_error() so that
raw_ostream doesn't try to do its own error handling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104881
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Thu, 27 May 2010 20:12:41 +0000 (20:12 +0000)]
Mark some math lib intrinsic nodes Legal on SSE4.1.
No functional effect as these nodes are not generated yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104879
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 27 May 2010 20:06:51 +0000 (20:06 +0000)]
Don't special-case stdout in llvm::WriteBitcodeToFile; just consider
it to be the caller's responsibility to provide a stream in binary
mode. This fixes a layering violation and avoids an outs() call.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104878
91177308-0d34-0410-b5e6-
96231b3b80d8
Stuart Hastings [Thu, 27 May 2010 19:57:51 +0000 (19:57 +0000)]
Adjust test case for lexical block pruning. Follow-on to r104842 and Radar
7424645.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104876
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 27 May 2010 19:52:20 +0000 (19:52 +0000)]
Don't create an output stream when output is disabled.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104875
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 27 May 2010 19:48:08 +0000 (19:48 +0000)]
Simplify raw_ostream usage.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104874
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 27 May 2010 19:47:36 +0000 (19:47 +0000)]
Avoid calling outs() and fouts() when the stream isn't really needed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104873
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 27 May 2010 19:46:38 +0000 (19:46 +0000)]
Let's try one more time to match patterns.
The goal is to match following 3 lines. In otherwords, a temp. label between to DEBUG_VALUE comments.
;DEBUG_VALUE: bar:x <- undef ## 2010-01-18-Inlined-Debug.c:7
Ltmp1:
;DEBUG_VALUE: foo:__x <- undef ## 2010-01-18-Inlined-Debug.c:5
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104872
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Thu, 27 May 2010 19:09:06 +0000 (19:09 +0000)]
Teach instCombine to remove malloc+free if malloc's only uses are comparisons
to null. Patch by Matti Niemenmaa.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104871
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 27 May 2010 18:52:11 +0000 (18:52 +0000)]
hook ISD::STACKADDR to an intrinsic
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104869
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 27 May 2010 18:43:40 +0000 (18:43 +0000)]
FastISel doesn't yet handle callee-pop functions.
To support this, move IsCalleePop from X86ISelLowering to X86Subtarget.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104866
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 27 May 2010 18:23:48 +0000 (18:23 +0000)]
add ISD::STACKADDR to get the current stack pointer. Will be used by sjlj EH
to update the jmpbuf in the presence of VLAs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104862
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Thu, 27 May 2010 18:17:40 +0000 (18:17 +0000)]
Merge basic binops SSE 1 & 2 instruction classes. This is a step towards refactoring
common code between SSE versions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104860
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 27 May 2010 17:51:08 +0000 (17:51 +0000)]
Temp. labels number may not match for all configurations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104858
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 27 May 2010 17:31:51 +0000 (17:31 +0000)]
Add basic error checking to MemoryBuffer::getSTDIN.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104855
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 27 May 2010 17:18:38 +0000 (17:18 +0000)]
Use the return value of getMagicNumber instead of using a
separate canRead() call.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104853
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 27 May 2010 17:14:10 +0000 (17:14 +0000)]
Don't bother clearing the Magic string when the magic number
can't be read, since it isn't cleared on other error paths.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104852
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 27 May 2010 17:12:23 +0000 (17:12 +0000)]
Don't bother checking canRead() before calling getMagicNumber();
getMagicNumber() does its own error checking.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104851
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 27 May 2010 16:47:30 +0000 (16:47 +0000)]
inlined function's arguments need a label to mark the start point because they are not directly attached to current function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104848
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 27 May 2010 16:25:05 +0000 (16:25 +0000)]
Minor code simplification.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104845
91177308-0d34-0410-b5e6-
96231b3b80d8
Stuart Hastings [Thu, 27 May 2010 16:16:54 +0000 (16:16 +0000)]
Support for nested functions/classes in debug output. Radar
7424645.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104841
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 27 May 2010 16:15:28 +0000 (16:15 +0000)]
Delete a spurious svn:mergeinfo property.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104840
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 27 May 2010 15:04:02 +0000 (15:04 +0000)]
remove incorrect GCCBuiltin<> usage
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104833
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Thu, 27 May 2010 09:48:47 +0000 (09:48 +0000)]
typo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104832
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Thu, 27 May 2010 09:32:38 +0000 (09:32 +0000)]
rename test to represent meaningful date
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104831
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 27 May 2010 05:31:32 +0000 (05:31 +0000)]
AsmMatcher: Ensure classes are totally ordered, so we can std::sort them reliably.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104806
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Thu, 27 May 2010 05:30:36 +0000 (05:30 +0000)]
Add a test for llvm-gcc svn r104726.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104805
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Thu, 27 May 2010 00:53:40 +0000 (00:53 +0000)]
Add a quick test of relocations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104794
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Thu, 27 May 2010 00:52:31 +0000 (00:52 +0000)]
Rearrange conditionals so we don't get caught with the correct type as wrong.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104793
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 26 May 2010 23:55:23 +0000 (23:55 +0000)]
Simplify. Eliminate unneeded debug_loc entry.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104785
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Wed, 26 May 2010 22:40:28 +0000 (22:40 +0000)]
Avoid counting InlineAsm as a call - it prevents loop unrolling.
PR7026
Patch by Pekka Jääskeläinen!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104780
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 26 May 2010 22:28:53 +0000 (22:28 +0000)]
Fix Lint printing warnings multiple times. Remove the ErrorStr
option from lintModule, which was an artifact from being
based on Verifier code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104765
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 26 May 2010 22:21:28 +0000 (22:21 +0000)]
AsmMatcher/X86: Mark _REV instructions as "code gen only", they aren't expected
to be matched.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104757
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 26 May 2010 22:21:25 +0000 (22:21 +0000)]
Reinstate checking of stackrestore, with checking for both Read
and Write, and add a comment explaining this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104756
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Wed, 26 May 2010 22:15:07 +0000 (22:15 +0000)]
Check that inherited subregisters all have a direct SubRegIndex.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104755
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Wed, 26 May 2010 22:15:03 +0000 (22:15 +0000)]
Give SubRegIndex names to all ARM subregisters. This will be required by
TableGen shortly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104754
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 26 May 2010 22:00:10 +0000 (22:00 +0000)]
Stackrestore is not a load.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104752
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 26 May 2010 21:56:15 +0000 (21:56 +0000)]
Fix a missing quote.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104750
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 26 May 2010 21:53:50 +0000 (21:53 +0000)]
Add FIXME comment to remove this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104749
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 26 May 2010 21:50:41 +0000 (21:50 +0000)]
Remove a TODO which isn't practical.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104748
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 26 May 2010 21:48:55 +0000 (21:48 +0000)]
MC: Add TargetMachine support for setting the value of MCRelaxAll with
-filetype=obj.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104747
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Wed, 26 May 2010 21:47:28 +0000 (21:47 +0000)]
Add StringRef::compare_numeric and use it to sort TableGen register records.
This means that our Registers are now ordered R7, R8, R9, R10, R12, ...
Not R1, R10, R11, R12, R2, R3, ...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104745
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 26 May 2010 21:46:36 +0000 (21:46 +0000)]
Implement checking of the tail keyword.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104744
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Wed, 26 May 2010 21:35:55 +0000 (21:35 +0000)]
Suppress emmission of empty subreg/superreg/alias sets.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104741
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 26 May 2010 21:23:46 +0000 (21:23 +0000)]
There is no need to force an line number entry (using previous location) for a temp label at unknown location.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104740
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 26 May 2010 20:39:00 +0000 (20:39 +0000)]
Add "setjmp_syscall", "savectx", "qsetjmp", "vfork", "getcontext" to the list of
usual suspects that could "return twice".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104737
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 26 May 2010 20:37:03 +0000 (20:37 +0000)]
MC: When running with -mc-relax-all, we can eagerly relax instructions and avoid creating unnecessary MCInstFragments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104736
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 26 May 2010 20:37:00 +0000 (20:37 +0000)]
MC/Mach-O: Factor out EmitInstTo{Fragment,Data} for emitting MCInst's as MCInstFragments or appending onto an MCDataFragment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104735
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 26 May 2010 20:22:18 +0000 (20:22 +0000)]
Adjust eh.sjlj.setjmp to properly have a chain and to have an opcode entry in
ISD::. No functional change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104734
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 26 May 2010 20:18:50 +0000 (20:18 +0000)]
Update debug info when live-in reg is copied into a vreg.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104732
91177308-0d34-0410-b5e6-
96231b3b80d8
Kevin Enderby [Wed, 26 May 2010 20:10:45 +0000 (20:10 +0000)]
Fix the x86 move to/from segment register instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104731
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 26 May 2010 19:46:12 +0000 (19:46 +0000)]
Move the check for "calls setjmp" to SelectionDAGISel so that it can be used by
more than just the stack slot coloring algorithm.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104722
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 26 May 2010 19:37:24 +0000 (19:37 +0000)]
Identify instructions, that needs a label to mark debug info entity, in advance. This simplifies beginScope().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104720
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 26 May 2010 18:52:00 +0000 (18:52 +0000)]
Eliminate the use of PriorityQueue and just use a std::vector,
implementing pop with a linear search for a "best" element. The priority
queue was a neat idea, but in practice the comparison functions depend
on dynamic information.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104718
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 26 May 2010 18:37:48 +0000 (18:37 +0000)]
Fix indentation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104717
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 26 May 2010 18:34:12 +0000 (18:34 +0000)]
Delete an unused function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104716
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 26 May 2010 18:15:06 +0000 (18:15 +0000)]
MC: Change RelaxInstruction to only take the input and output instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104713
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 26 May 2010 18:03:53 +0000 (18:03 +0000)]
Fix a typo in a comment that Gabor noticed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104711
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Wed, 26 May 2010 17:55:45 +0000 (17:55 +0000)]
Testcase for 104624/104619/PR7191/
8023512.
Reduced from one provided by Duncan Sands, thanks!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104710
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 26 May 2010 17:50:16 +0000 (17:50 +0000)]
MC: Eliminate an unnecessary copy.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104709
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 26 May 2010 17:45:29 +0000 (17:45 +0000)]
MC: Simplify MayNeedRelaxation to not provide the fixups, so we can query it
before encoding.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104707
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 26 May 2010 17:42:50 +0000 (17:42 +0000)]
Remove dead code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104706
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 26 May 2010 17:29:32 +0000 (17:29 +0000)]
Do not construct location list backword!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104705
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Wed, 26 May 2010 17:27:12 +0000 (17:27 +0000)]
Replace the SubRegSet tablegen class with a less error-prone mechanism.
A Register with subregisters must also provide SubRegIndices for adressing the
subregisters. TableGen automatically inherits indices for sub-subregisters to
minimize typing.
CompositeIndices may be specified for the weirder cases such as the XMM sub_sd
index that returns the same register, and ARM NEON Q registers where both D
subregs have ssub_0 and ssub_1 sub-subregs.
It is now required that all subregisters are named by an index, and a future
patch will also require inherited subregisters to be named. This is necessary to
allow composite subregister indices to be reduced to a single index.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104704
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 26 May 2010 16:21:41 +0000 (16:21 +0000)]
Add entry for llvm.eh.sjlj.longjmp. PR4999.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104703
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 26 May 2010 15:18:56 +0000 (15:18 +0000)]
MC: Eliminate MCAsmFixup, replace with MCFixup.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104699
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 26 May 2010 15:18:40 +0000 (15:18 +0000)]
MC: Simplify MCFixup and increase the available offset size.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104698
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 26 May 2010 15:18:31 +0000 (15:18 +0000)]
MC: Use accessors for access to MCAsmFixup.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104697
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 26 May 2010 15:18:13 +0000 (15:18 +0000)]
MC: Change MCInst::dump_pretty to not include a trailing newline.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104696
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Wed, 26 May 2010 09:45:04 +0000 (09:45 +0000)]
Kill unneeded SExt.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104692
91177308-0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Wed, 26 May 2010 08:10:02 +0000 (08:10 +0000)]
SRetReturnReg was set in LowerFormalArguments(). So only assert it here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104691
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 26 May 2010 06:50:57 +0000 (06:50 +0000)]
MC: Eliminate MCFragment vtable, which was unnecessary.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104689
91177308-0d34-0410-b5e6-
96231b3b80d8
Shih-wei Liao [Wed, 26 May 2010 04:46:50 +0000 (04:46 +0000)]
Coding style change (Adding 1 missing space.)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104670
91177308-0d34-0410-b5e6-
96231b3b80d8
Shih-wei Liao [Wed, 26 May 2010 03:21:39 +0000 (03:21 +0000)]
Adding the missing implementation for ARM::SBFX and ARM::UBFX.
Fixing http://llvm.org/bugs/show_bug.cgi?id=7225.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104667
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 26 May 2010 01:59:55 +0000 (01:59 +0000)]
Temporarily revert r104655 as it's breaking the bots.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104664
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 26 May 2010 01:22:21 +0000 (01:22 +0000)]
fix off by 1 (insn) error in eh.sjlj.setjmp thumb code sequence.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104661
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Wed, 26 May 2010 01:21:14 +0000 (01:21 +0000)]
Revert "Replace the SubRegSet tablegen class with a less error-prone mechanism."
This reverts commit 104654.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104660
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 26 May 2010 01:10:55 +0000 (01:10 +0000)]
Change push_all to a non-virtual function and implement it in the
base class, since all the implementations are the same.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104659
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 26 May 2010 00:56:27 +0000 (00:56 +0000)]
Delete an unused function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104658
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 26 May 2010 00:55:59 +0000 (00:55 +0000)]
Trim #include.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104657
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 26 May 2010 00:32:40 +0000 (00:32 +0000)]
Dale and Evan suggested putting the "check for setjmp" much earlier in the
machine code generation. That's a good idea, so I made it so.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104655
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Wed, 26 May 2010 00:28:19 +0000 (00:28 +0000)]
Replace the SubRegSet tablegen class with a less error-prone mechanism.
A Register with subregisters must also provide SubRegIndices for adressing the
subregisters. TableGen automatically inherits indices for sub-subregisters to
minimize typing.
CompositeIndices may be specified for the weirder cases such as the XMM sub_sd
index that returns the same register, and ARM NEON Q registers where both D
subregs have ssub_0 and ssub_1 sub-subregs.
It is now required that all subregisters are named by an index, and a future
patch will also require inherited subregisters to be named. This is necessary to
allow composite subregister indices to be reduced to a single index.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104654
91177308-0d34-0410-b5e6-
96231b3b80d8
Shih-wei Liao [Wed, 26 May 2010 00:25:05 +0000 (00:25 +0000)]
Adding the missing implementation of Bitfield's "clear" and "insert".
Fixing http://llvm.org/bugs/show_bug.cgi?id=7222.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104653
91177308-0d34-0410-b5e6-
96231b3b80d8
Shih-wei Liao [Wed, 26 May 2010 00:02:28 +0000 (00:02 +0000)]
To handle s* registers in emitVFPLoadStoreMultipleInstruction().
Fixing http://llvm.org/bugs/show_bug.cgi?id=7221.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104652
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 26 May 2010 00:02:12 +0000 (00:02 +0000)]
Start adding mach-o tls reloc support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104651
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 25 May 2010 23:43:18 +0000 (23:43 +0000)]
Drop the SuperregHashTable. It is essentially the same as SubregHashTable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104650
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 25 May 2010 23:40:22 +0000 (23:40 +0000)]
First cut at supporting .debug_loc section.
This is used to track variable information.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104649
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Tue, 25 May 2010 22:53:43 +0000 (22:53 +0000)]
Properly promote operands when optimizing a single-character memcmp.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104648
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 25 May 2010 22:02:22 +0000 (22:02 +0000)]
Constify function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104646
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 25 May 2010 21:59:42 +0000 (21:59 +0000)]
Do one map lookup instead of two.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104645
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 25 May 2010 21:50:35 +0000 (21:50 +0000)]
Fix a missing newline in debug output.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104644
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Tue, 25 May 2010 21:49:43 +0000 (21:49 +0000)]
Move the verbose asm output up a bit so it can be used in the special cases
as well.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104642
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 25 May 2010 21:44:26 +0000 (21:44 +0000)]
Okay, bear with me here...
If you have a setjmp/longjmp situation, it's possible for stack slot coloring to
reuse a stack slot before it's really dead. For instance, if we have something
like this:
1: y = g;
x = sigsetjmp(env, 0);
switch (x) {
case 1:
/* ... */
goto run;
case 0:
run:
do_run(); /* marked as "no return" */
break;
case 3:
if (...) {
/* ... */
goto run;
}
/* ... */
break;
}
2: g = y;
"y" may be put onto the stack, so the expression "g = y" is relying upon the
fact that the stack slot containing "y" isn't modified between (1) and (2). But
it can be, because of the "no return" calls in there. A longjmp might come back
with 3, modify the stack slot, and then go to case 0. And it's perfectly
acceptable to reuse the stack slot there because there's no CFG flow from case 3
to (2).
The fix is to disable certain optimizations in these situations. Ideally, we'd
disable them for all "returns twice" functions. But we don't support that
attribute. Check for "setjmp" and "sigsetjmp" instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104640
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Tue, 25 May 2010 21:28:50 +0000 (21:28 +0000)]
Add support for initialized global data for darwin tls. Update comments
and testcases accordingly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104635
91177308-0d34-0410-b5e6-
96231b3b80d8
Kevin Enderby [Tue, 25 May 2010 20:52:34 +0000 (20:52 +0000)]
Changed the encoding of X86 floating point stack operations where both operands
are st(0). These can be encoded using an opcode for storing in st(0) or using
an opcode for storing in st(i), where i can also be 0. To allow testing with
the darwin assembler and get a matching binary the opcode for storing in st(0)
is now used. To do this the same logical trick is use from the darwin assembler
in converting things like this:
fmul %st(0), %st
into this:
fmul %st(0)
by looking for the second operand being X86::ST0 for specific floating point
mnemonics then removing the second X86::ST0 operand. This also has the add
benefit to allow things like:
fmul %st(1), %st
that llvm-mc did not assemble.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104634
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Tue, 25 May 2010 20:40:10 +0000 (20:40 +0000)]
Removing test; Chris thinks it's better to have the
bug go untested than have a testcase this large. So be it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104632
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 25 May 2010 19:49:40 +0000 (19:49 +0000)]
Separate unrelated cases that once shared a numeric value
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104629
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 25 May 2010 19:49:38 +0000 (19:49 +0000)]
Print symbolic SubRegIndex names on machine operands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104628
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 25 May 2010 19:49:33 +0000 (19:49 +0000)]
Remove NumberHack entirely.
SubRegIndex instances are now numbered uniquely the same way Register instances
are - in lexicographical order by name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104627
91177308-0d34-0410-b5e6-
96231b3b80d8