Jim Grosbach
4f7964293a
Thumb2 t2LDMDB[_UPD] assembly parsing to recognize .w suffix.
...
rdar://10348844
llvm-svn: 143110
2011-10-27 17:33:59 +00:00
Owen Anderson
997d323baa
Expose relocation accessors through the libObject C API.
...
llvm-svn: 143109
2011-10-27 17:32:36 +00:00
Jim Grosbach
e1ec953149
Thumb2 t2MVNi assembly parsing to recognize ".w" suffix.
...
rdar://10348584
llvm-svn: 143108
2011-10-27 17:16:55 +00:00
Owen Anderson
ece66e91f2
Add relocation iterators to the libObject C API.
...
llvm-svn: 143107
2011-10-27 17:15:47 +00:00
Benjamin Kramer
ad2fb4eeb5
BlockFrequency: Use a smarter overflow check.
...
This trades one 64 bit div for one 64 bit mul and some arithmetic.
llvm-svn: 143106
2011-10-27 16:38:50 +00:00
Bob Wilson
2ca603d9b7
Revert Duncan's r143028 expression folding which appears to be the culprit
...
behind a compile failure on 483.xalancbmk.
llvm-svn: 143102
2011-10-27 15:47:25 +00:00
Benjamin Kramer
7e10fef545
LLLexer: Factor hex char parsing.
...
llvm-svn: 143101
2011-10-27 14:08:01 +00:00
Nick Lewycky
651475977d
Teach our Dwarf emission to use the string pool.
...
llvm-svn: 143097
2011-10-27 06:44:11 +00:00
Eli Friedman
76e3969f05
Don't crash on 128-bit sdiv by constant. Found by inspection.
...
llvm-svn: 143095
2011-10-27 02:06:39 +00:00
Eli Friedman
e6918ac01a
It is not safe to sink an alloca into a stacksave/stackrestore pair, so don't do that. <rdar://problem/10352360>
...
llvm-svn: 143093
2011-10-27 01:33:51 +00:00
Chad Rosier
e76ba1b654
A branch predicated on a constant can just FastEmit an unconditional branch.
...
llvm-svn: 143086
2011-10-27 00:21:16 +00:00
Lang Hames
e8bb71f80d
Rename NonScalarIntSafe to something more appropriate.
...
llvm-svn: 143080
2011-10-26 23:50:43 +00:00
Chad Rosier
e3141f4f8b
Add a TODO comment. FastISel works by parsing each basic block from the bottom
...
up. Thus, improving the support for compares is goodness because it increases
the number of terminator instructions we can handle. This creates many more
opportunities for target specific fast-isel.
llvm-svn: 143079
2011-10-26 23:34:37 +00:00
Chad Rosier
75378507e3
Factor a little more code into EmitCmp, which should have been done in the first
...
place. No functional change intended.
llvm-svn: 143078
2011-10-26 23:25:44 +00:00
Chad Rosier
52109646da
Use EmitCmp in SelectBranch. No functional change intended.
...
llvm-svn: 143076
2011-10-26 23:17:28 +00:00
Nick Lewycky
4aa5a52a80
Reflow lines, fix comments for doxygen style, fix whitespace. No functionality
...
change.
llvm-svn: 143074
2011-10-26 22:55:33 +00:00
Bill Wendling
aa34e68e85
Add include-what-you-use to the External Projects list.
...
llvm-svn: 143073
2011-10-26 22:55:18 +00:00
Chad Rosier
3f38cb48de
Factor out an EmitCmp function that can be used by both SelectCmp and
...
SelectBranch. No functional change intended.
llvm-svn: 143072
2011-10-26 22:47:55 +00:00
Jim Grosbach
c1cf1fe985
Trailing whitespace.
...
llvm-svn: 143071
2011-10-26 22:44:41 +00:00
Jim Grosbach
e3c6fa663f
Thumb2 ldr pc-relative encoding fixes.
...
We were parsing label references to the i12 encoding, which isn't right.
They need to go to the pci variant instead.
More of rdar://10348687
llvm-svn: 143068
2011-10-26 22:22:01 +00:00
Rafael Espindola
8c0e2c2fe7
Run test with -verify-machineinstrs.
...
Patch by Sanjoy Das.
llvm-svn: 143066
2011-10-26 21:20:26 +00:00
Rafael Espindola
1958dc7193
Fixes an issue reported by -verify-machineinstrs.
...
Patch by Sanjoy Das.
llvm-svn: 143064
2011-10-26 21:16:41 +00:00
Jim Grosbach
4597f361f6
ARM parse parenthesized expressions for label references.
...
Partial fix for rdar://10348687.
llvm-svn: 143063
2011-10-26 21:14:08 +00:00
Rafael Espindola
90896edc6c
This commit introduces two fake instructions MORESTACK_RET and
...
MORESTACK_RET_RESTORE_R10; which are lowered to a RET and a RET
followed by a MOV respectively. Having a fake instruction prevents
the verifier from seeing a MachineBasicBlock end with a
non-terminator (MOV). It also prevents the rather eccentric case of a
MachineBasicBlock ending with RET but having successors nevertheless.
Patch by Sanjoy Das.
llvm-svn: 143062
2011-10-26 21:12:27 +00:00
Lang Hames
d87e366c7f
Make sure short memsets on ARM lower to stores, even when optimizing for size.
...
llvm-svn: 143055
2011-10-26 20:56:52 +00:00
Duncan Sands
5c8fa99c32
The maximum power of 2 dividing a power of 2 is itself. This occurs
...
in 403.gcc and was spotted by my super-optimizer.
llvm-svn: 143054
2011-10-26 20:55:21 +00:00
Owen Anderson
11396b575d
Add support for scattered relocations to the MachO relocatation pretty printer.
...
llvm-svn: 143051
2011-10-26 20:42:54 +00:00
Bill Wendling
89920edb9a
Some formatting changes.
...
llvm-svn: 143045
2011-10-26 18:46:16 +00:00
Nick Lewycky
16ff59bfc8
On an ELF system, ".debug_str" is mergeable and contains null terminated strings
...
composed of one byte characters.
llvm-svn: 143044
2011-10-26 18:44:32 +00:00
Bill Wendling
a928a279c7
Add the blurb about the new exception handling.
...
llvm-svn: 143042
2011-10-26 18:33:01 +00:00
Bill Wendling
1b6891cd89
Add clReflect to the External Projects list.
...
llvm-svn: 143041
2011-10-26 18:23:06 +00:00
Bill Wendling
4d7df0e9fa
Add LanguageKit and Pragmatic Smalltalk to the External Projects list.
...
llvm-svn: 143040
2011-10-26 18:20:54 +00:00
Owen Anderson
8d9656dd53
The order of the two symbol listings in a Macho x86_64 subtractor relocation is reversed from what seems intuitive to me.
...
llvm-svn: 143035
2011-10-26 17:28:49 +00:00
Jim Grosbach
5a61a956cb
Thumb2 remove redundant ".w" suffix from t2MVNCCi pattern.
...
llvm-svn: 143034
2011-10-26 17:28:15 +00:00
Owen Anderson
27580bf1eb
Include the full 64 bits of relocation data in the type info for MachO relocations, so that we can recognize scattered relocations.
...
llvm-svn: 143033
2011-10-26 17:10:22 +00:00
Owen Anderson
7a9bb4d47f
Expand relocation type field to 64 bits. MachO scattered relocations require 33 bits of type info.
...
llvm-svn: 143032
2011-10-26 17:08:49 +00:00
Owen Anderson
fc7467fd5e
Improve pretty printing of GOT relocations in MachO on x86_64.
...
llvm-svn: 143031
2011-10-26 17:05:20 +00:00
Duncan Sands
c463f54342
My super-optimizer noticed that we weren't folding this expression to
...
true: (x *nsw x) sgt 0, where x = (y | 1). This occurs in 464.h264ref.
llvm-svn: 143028
2011-10-26 15:31:51 +00:00
Duncan Sands
9cbeb0a825
Simplify SplitVecRes_UnaryOp by removing all the code that is
...
trying to legalize the operand types when only the result type
is required to be legalized - the type legalization machinery
will get round to the operands later if they need legalizing.
There can be a point to legalizing operands in parallel with
the result: when this saves compile time or results in better
code. There was only one case in which this was true: when
the operand is also split, so keep the logic for that bit.
As a result of this change, additional operand legalization
methods may need to be introduced to handle nodes where the
result and operand types can differ, like SIGN_EXTEND, but
the testsuite doesn't contain any tests where this is the case.
In any case, it seems better to require such methods (and die
with an assert if they doesn't exist) than to quietly produce
wrong code if we forgot to special case the node in
SplitVecRes_UnaryOp.
llvm-svn: 143026
2011-10-26 14:11:18 +00:00
Bill Wendling
c77f5adfd6
Add ThreadSanitizer to the External Projects list.
...
llvm-svn: 143024
2011-10-26 09:25:01 +00:00
James Molloy
9afc8b08f7
Revert r142530 at least temporarily while a discussion is had on llvm-commits regarding exactly how much optsize should optimize for size over performance.
...
llvm-svn: 143023
2011-10-26 08:53:19 +00:00
Bill Wendling
c7ea75bb62
Add ZooLib to the External Projects list.
...
llvm-svn: 143022
2011-10-26 07:42:45 +00:00
Bill Wendling
f6c3913d5d
Add the Stupid D Compiler to the External Projects list.
...
llvm-svn: 143020
2011-10-26 07:38:19 +00:00
Bill Wendling
b0dc0e18ca
Use a worklist to prevent the iterator from becoming invalidated because of the 'removeSuccessor' call. Noticed in a Release+Asserts+Check buildbot.
...
llvm-svn: 143018
2011-10-26 07:16:18 +00:00
Bill Wendling
7f5fed82ff
Fix grammar.
...
llvm-svn: 143012
2011-10-26 04:24:15 +00:00
Eric Christopher
0042cece21
Remove unused variable.
...
llvm-svn: 143011
2011-10-26 03:47:16 +00:00
Charles Davis
f672c3b138
Revert 142997. It doesn't work on Mac OS or the BSDs, which all use the BSD
...
version of the install program, which does not have the --strip-program
switch.
llvm-svn: 143009
2011-10-26 02:28:32 +00:00
Jakob Stoklund Olesen
4512ad38b1
Don't use floating point to do an integer's job.
...
This code makes different decisions when compiled into x87 instructions
because of different rounding behavior. That caused phase 2/3
miscompares on 32-bit Linux when the phase 1 compiler was built with gcc
(using x87), and the phase 2 compiler was built with clang (using SSE).
This fixes PR11200.
llvm-svn: 143006
2011-10-26 01:47:48 +00:00
Evan Cheng
c3031bd208
Disable LICM speculation in high register pressure situation again now that Devang has fixed other issues.
...
llvm-svn: 143003
2011-10-26 01:26:57 +00:00
Evan Cheng
941d5c148f
Revert part of r142530. The patch potentially hurts performance especially
...
on Darwin platforms where -Os means optimize for size without hurting
performance.
llvm-svn: 143002
2011-10-26 01:17:44 +00:00