Dan Gohman [Fri, 18 Jun 2010 01:05:21 +0000 (01:05 +0000)]
Fold the ShrinkDemandedOps pass into the regular DAGCombiner pass,
which is faster, simpler, and less surprising.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106263
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 18 Jun 2010 00:53:08 +0000 (00:53 +0000)]
Fix a typo in a comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106260
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 18 Jun 2010 00:35:32 +0000 (00:35 +0000)]
improve portability to solaris 10, PR7380, patch by Simon Billingsley!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106259
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 18 Jun 2010 00:08:30 +0000 (00:08 +0000)]
Handle ext(ext(x)) -> ext(x) immediately, since it's simple.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106256
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 18 Jun 2010 00:06:03 +0000 (00:06 +0000)]
Make this test less fragile.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106255
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 17 Jun 2010 23:34:09 +0000 (23:34 +0000)]
Simplify this code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106254
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Thu, 17 Jun 2010 23:05:30 +0000 (23:05 +0000)]
Use new tablegen resources in SSE tablegen code. This will
be done incrementally and intermixed with the adding of more
AVX instructions. This is a first step in that direction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106251
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Thu, 17 Jun 2010 23:00:16 +0000 (23:00 +0000)]
In case Rec is a definition and not a class, do the proper comparison!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106246
91177308-0d34-0410-b5e6-
96231b3b80d8
Stuart Hastings [Thu, 17 Jun 2010 22:43:56 +0000 (22:43 +0000)]
Add a DebugLoc parameter to TargetInstrInfo::InsertBranch(). This
addresses a longstanding deficiency noted in many FIXMEs scattered
across all the targets.
This effectively moves the problem up one level, replacing eleven
FIXMEs in the targets with eight FIXMEs in CodeGen, plus one path
through FastISel where we actually supply a DebugLoc, fixing Radar
7421831.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106243
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 17 Jun 2010 19:23:50 +0000 (19:23 +0000)]
Minor clarification.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106234
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 17 Jun 2010 17:58:54 +0000 (17:58 +0000)]
add missing break. inconsequential as the code shouldn't be reached, but
for correctness' sake, it should be there.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106229
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 17 Jun 2010 17:50:54 +0000 (17:50 +0000)]
Add entries for Expanding atomic intrinsics to libcalls. Just a placeholder
for the moment. The implementation of the libcall will follow.
Currently, the llvm-gcc knows when the intrinsics can be correctly handled by
the back end and only generates them in those cases, issuing libcalls directly
otherwise. That's too much coupling. The intrinsics should always be
generated and the back end decide how to handle them, be it with a libcall,
inline code, or whatever. This patch is a step in that direction.
rdar://
8097623
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106227
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Thu, 17 Jun 2010 17:43:14 +0000 (17:43 +0000)]
Testcase for llvm-gcc 106225.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106226
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 17 Jun 2010 15:18:27 +0000 (15:18 +0000)]
Remove arm_apcscc from the test files. It is the default and doing this
matches what llvm-gcc and clang now produce.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106221
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Thu, 17 Jun 2010 15:17:07 +0000 (15:17 +0000)]
Allow absolute paths in LLVM_TARGET_DEFINITIONS for CMake's TableGen rule
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106219
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Thu, 17 Jun 2010 04:15:13 +0000 (04:15 +0000)]
Modify tablegen to support generating all NEON code used by clang at once.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106207
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 17 Jun 2010 02:02:03 +0000 (02:02 +0000)]
Thumb1 and any pre-v6 ARM target should use the libcall expansion of
ISD::MEMBARRIER. v7 and v7 ARM mode continue to use the custom lowering.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106204
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 17 Jun 2010 02:00:53 +0000 (02:00 +0000)]
ISD::MEMBARRIER should lower to a libcall (__sync_synchronize) if the target
sets the legalize action to Expand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106203
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Thu, 17 Jun 2010 01:50:39 +0000 (01:50 +0000)]
Fix the handling of !if result, avoiding null results for non 'int'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106201
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 17 Jun 2010 01:37:00 +0000 (01:37 +0000)]
simplify code a bit and add a more explanatory assert for cases that
previously would result in 'cannot yet select' errors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106199
91177308-0d34-0410-b5e6-
96231b3b80d8
Jason Molenda [Thu, 17 Jun 2010 01:23:24 +0000 (01:23 +0000)]
Add the entire range of DW_OP_lit[0..31], DW_OP_reg[0..31], and
DW_OP_breg[0..31] to Dwarf.h.
Add "DW_" prefix to the llvm::dwarf::*String methods which did not
already have them in Dwarf.cpp.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106197
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Thu, 17 Jun 2010 00:51:48 +0000 (00:51 +0000)]
Hack to let the move lowering handle dynamic-no-pic absolute moves of
TLVP:
movl _a@TLVP, %eax
Daniel: Please review if you get a chance.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106194
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Thu, 17 Jun 2010 00:49:46 +0000 (00:49 +0000)]
Update comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106191
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Thu, 17 Jun 2010 00:31:36 +0000 (00:31 +0000)]
For a tablegen expression such as !if(a,b,c), let 'a'
be evaluated for 'bit' operators
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106185
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Hunt [Thu, 17 Jun 2010 00:10:16 +0000 (00:10 +0000)]
Fix the typo in my previous one-line commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106179
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Hunt [Wed, 16 Jun 2010 23:52:37 +0000 (23:52 +0000)]
Make sure CMake can build the files added by my previous commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106178
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Hunt [Wed, 16 Jun 2010 23:45:50 +0000 (23:45 +0000)]
Add preliminary clang attribute generation support.
The attribute class generation support is still somewhat limited.
See the accompanying clang commit for more details.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106174
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 16 Jun 2010 23:45:49 +0000 (23:45 +0000)]
format and 80-column cleanup
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106173
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Wed, 16 Jun 2010 23:24:12 +0000 (23:24 +0000)]
let the '!eq' expression support 'int' and 'bit' types
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106171
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 16 Jun 2010 22:41:09 +0000 (22:41 +0000)]
remove trailing whitespace
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106164
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Wed, 16 Jun 2010 22:32:18 +0000 (22:32 +0000)]
Revert r106117, which was the result of me misreading the C++98/03
specification.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106162
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Wed, 16 Jun 2010 22:11:08 +0000 (22:11 +0000)]
Don't attempt preserving conservative kill flags. We were doing it wrong.
This is before LiveVariables anyway, where these kill flags are recalculated.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106157
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Wed, 16 Jun 2010 21:34:01 +0000 (21:34 +0000)]
Remove the hidden "neon-reg-sequence" option. The reg sequences are working
now, so there's no need to disable them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106155
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 16 Jun 2010 21:32:38 +0000 (21:32 +0000)]
In progress on 32-bit addends.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106154
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Wed, 16 Jun 2010 21:29:40 +0000 (21:29 +0000)]
Allow a register to be redefined multiple times in a basic block.
LiveVariableAnalysis was a bit picky about a register only being redefined once,
but that really isn't necessary.
Here is an example of chained INSERT_SUBREGs that we can handle now:
68 %reg1040<def> = INSERT_SUBREG %reg1040, %reg1028<kill>, 14
register: %reg1040 +[70,134:0)
76 %reg1040<def> = INSERT_SUBREG %reg1040, %reg1029<kill>, 13
register: %reg1040 replace range with [70,78:1) RESULT: %reg1040,0.
000000e+00 = [70,78:1)[78,134:0) 0@78-(134) 1@70-(78)
84 %reg1040<def> = INSERT_SUBREG %reg1040, %reg1030<kill>, 12
register: %reg1040 replace range with [78,86:2) RESULT: %reg1040,0.
000000e+00 = [70,78:1)[78,86:2)[86,134:0) 0@86-(134) 1@70-(78) 2@78-(86)
92 %reg1040<def> = INSERT_SUBREG %reg1040, %reg1031<kill>, 11
register: %reg1040 replace range with [86,94:3) RESULT: %reg1040,0.
000000e+00 = [70,78:1)[78,86:2)[86,94:3)[94,134:0) 0@94-(134) 1@70-(78) 2@78-(86) 3@86-(94)
rdar://problem/
8096390
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106152
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 16 Jun 2010 21:13:38 +0000 (21:13 +0000)]
A few more places where SCEVExpander bits need to skip over debug intrinsics
when iterating through instructions. Yet more work for rdar://
7797940
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106149
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 16 Jun 2010 21:07:06 +0000 (21:07 +0000)]
modify so the test doesn't drop an output file in the test source directory.
The test should also likely have some FileCheck bits to validate the
output(?).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106146
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 16 Jun 2010 20:04:32 +0000 (20:04 +0000)]
MC/Mach-O: Rewrite atom association to be a final pass we do in Finish(), instead of tracking as part of emission.
- This allows sharing more code with the MCObjectStreamer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106143
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 16 Jun 2010 20:04:29 +0000 (20:04 +0000)]
MC: Simplify MCAssembler::isSymbolLinkerVisible to only take an MCSymbol.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106142
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 16 Jun 2010 20:04:25 +0000 (20:04 +0000)]
MC: Lift SwitchSection() and Finish() into MCObjectStreamer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106141
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 16 Jun 2010 20:04:22 +0000 (20:04 +0000)]
MC: Factor out an MCObjectStreamer class, which will be shared by the concrete
object file format writers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106140
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 16 Jun 2010 19:39:45 +0000 (19:39 +0000)]
Be specific. Use FileCheck.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106135
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 16 Jun 2010 19:34:01 +0000 (19:34 +0000)]
Make sure that simplify libcalls does not replace a call with one calling
convention with a new call with a different calling convention.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106134
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 16 Jun 2010 18:45:08 +0000 (18:45 +0000)]
add FIXME
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106126
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 16 Jun 2010 18:19:49 +0000 (18:19 +0000)]
This requires more investigation. Unblock buildbots for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106122
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 16 Jun 2010 18:04:12 +0000 (18:04 +0000)]
Update test to explicitly capture llc output.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106121
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 16 Jun 2010 18:01:31 +0000 (18:01 +0000)]
Improve comment to include that the use of a preg is also verboten in this situation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106119
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Wed, 16 Jun 2010 17:42:01 +0000 (17:42 +0000)]
Eliminate a redundant "typename" keyword
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106117
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Wed, 16 Jun 2010 15:47:00 +0000 (15:47 +0000)]
TODO--
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106102
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Wed, 16 Jun 2010 10:30:29 +0000 (10:30 +0000)]
simplify-libcalls: fold strncmp(x, y, 1) -> memcmp(x, y, 1)
The memcmp will be optimized further and even the pathological case
'strstr(x, "x") == x' generates optimal code now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106097
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 16 Jun 2010 07:35:02 +0000 (07:35 +0000)]
Make post-ra scheduling, anti-dep breaking, and register scavenger (conservatively) aware of predicated instructions. This enables ARM to move if-conversion before post-ra scheduler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106091
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 16 Jun 2010 06:42:02 +0000 (06:42 +0000)]
Check function pointer first, before comparing function names.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106088
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 16 Jun 2010 00:53:55 +0000 (00:53 +0000)]
Use separate named MDNode to hold each function's local variable info.
This speeds up local variable handling in DwarfDebug.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106075
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 16 Jun 2010 00:27:30 +0000 (00:27 +0000)]
Don't emit the linkage for initializer label for mach-o tls.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106073
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 16 Jun 2010 00:26:36 +0000 (00:26 +0000)]
Fix indentation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106072
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 15 Jun 2010 23:46:31 +0000 (23:46 +0000)]
Create a more targeted fix for not sinking instructions into a range where it
will conflict with another live range. The place which creates this scenerio is
the code in X86 that lowers a select instruction by splitting the MBBs. This
eliminates the need to check from the bottom up in an MBB for live pregs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106066
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Tue, 15 Jun 2010 23:08:42 +0000 (23:08 +0000)]
For 32-bit non-pic tlv mach-o addressing we don't need a pic base or
a relative address.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106064
91177308-0d34-0410-b5e6-
96231b3b80d8
Stuart Hastings [Tue, 15 Jun 2010 23:06:30 +0000 (23:06 +0000)]
Added a comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106063
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Tue, 15 Jun 2010 22:59:05 +0000 (22:59 +0000)]
Some more work on mach-o TLV relocations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106062
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Tue, 15 Jun 2010 22:24:08 +0000 (22:24 +0000)]
Add file missing from previous commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106058
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Tue, 15 Jun 2010 22:18:54 +0000 (22:18 +0000)]
Fix 80col violations, remove trailing whitespace, and clarify a comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106057
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 15 Jun 2010 22:16:40 +0000 (22:16 +0000)]
Update test to match recent llvm-gcc change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106056
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Tue, 15 Jun 2010 22:10:31 +0000 (22:10 +0000)]
Make VC++ happy
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106054
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Tue, 15 Jun 2010 22:08:33 +0000 (22:08 +0000)]
Next round of tail call changes. Register used in a tail
call must not be callee-saved; following x86, add a new
regclass to represent this. Also fixes a couple of bugs.
Still disabled by default; Thumb doesn't work yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106053
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 15 Jun 2010 21:58:33 +0000 (21:58 +0000)]
Remove the local register allocator.
Please use the fast allocator instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106051
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Tue, 15 Jun 2010 21:36:43 +0000 (21:36 +0000)]
Reapply 105986 with fix for bug pointed out by Jakob:
flag argument to addReg is not the same format as flags attached
to MachineOperand, although both have the same info. I don't
think this actually mattered; the bootstrap failure did not
reproduce on the next run anyway.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106049
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 15 Jun 2010 21:35:22 +0000 (21:35 +0000)]
fix PR7380: use 'test' instead of shell builtins. This improves
portability to Solaris 10, which apparently doesn't support
[ foo -ot bar ]
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106048
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Tue, 15 Jun 2010 21:34:25 +0000 (21:34 +0000)]
simplify-libcalls: fold strstr(a, b) == a -> strncmp(a, b, strlen(b)) == 0
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106047
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 15 Jun 2010 20:42:00 +0000 (20:42 +0000)]
Set the mtriple in some tests so that they use AAPCS.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106041
91177308-0d34-0410-b5e6-
96231b3b80d8
Mon P Wang [Tue, 15 Jun 2010 20:29:05 +0000 (20:29 +0000)]
Fixed vector widening of binary instructions that can trap. Patch by Visa Putkinen!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106038
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 15 Jun 2010 19:20:30 +0000 (19:20 +0000)]
fpcmp: Fix bug where fpcmp wouldn't early exit when files obviously differ and
no tolerance is set.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106033
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 15 Jun 2010 19:20:28 +0000 (19:20 +0000)]
fpcmp: Fix a possible infinite loop when comparing something like:
1..19 ok
to
1..20 o k
(yes, the odd space is necessary).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106032
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 15 Jun 2010 19:08:40 +0000 (19:08 +0000)]
fix fastisel to handle GS and FS relative pointers. Patch by
Nelson Elhage!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106031
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Tue, 15 Jun 2010 19:05:35 +0000 (19:05 +0000)]
Add basic support for NEON modified immediates besides VMOV.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106030
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 15 Jun 2010 19:04:29 +0000 (19:04 +0000)]
Remove the arm_aapcscc marker from the tests. It is the default
for the linux targets.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106029
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 15 Jun 2010 18:59:43 +0000 (18:59 +0000)]
disable SmallVectorImpl's copy constructor. This prevents a class
of base class slicing bugs reported on irc
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106028
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Tue, 15 Jun 2010 18:57:15 +0000 (18:57 +0000)]
IfConversion's AnalyzeBlocks method always returns false; clean it up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106027
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 15 Jun 2010 18:53:34 +0000 (18:53 +0000)]
fix naming
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106024
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 15 Jun 2010 18:49:14 +0000 (18:49 +0000)]
Fix an exotic bug that only showed up in an internal test case.
SimpleRegisterCoalescing::JoinIntervals() uses CoalescerPair to determine if a
copy is coalescable, and in very rare cases it can return true where LHS is not
live - the coalescable copy can come from an alias of the physreg in LHS.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106021
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Tue, 15 Jun 2010 18:19:27 +0000 (18:19 +0000)]
Fix a comment typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106015
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 15 Jun 2010 17:47:24 +0000 (17:47 +0000)]
Remove stray semi-colon.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106009
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Tue, 15 Jun 2010 17:27:54 +0000 (17:27 +0000)]
Add some missing checks for the case where the extract_subregs are
combined to an insert_subreg, i.e., where the destination register is larger
than the source. We need to check that the subregs can be composed for that
case in a symmetrical way to the case when the destination is smaller.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106004
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 15 Jun 2010 16:20:57 +0000 (16:20 +0000)]
Avoid processing early clobbers twice in RegAllocFast.
Early clobbers defining a virtual register were first alocated to a physreg and
then processed as a physreg EC, spilling the virtreg.
This fixes PR7382.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105998
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 15 Jun 2010 16:04:21 +0000 (16:04 +0000)]
Add CoalescerPair helper class.
Given a copy instruction, CoalescerPair can determine which registers to
coalesce in order to eliminate the copy. It deals with all the subreg fun to
determine a tuple (DstReg, SrcReg, SubIdx) such that:
- SrcReg is a virtual register that will disappear after coalescing.
- DstReg is a virtual or physical register whose live range will be extended.
- SubIdx is 0 when DstReg is a physical register.
- SrcReg can be joined with DstReg:SubIdx.
CoalescerPair::isCoalescable() determines if another copy instruction is
compatible with the same tuple. This fixes some NEON miscompilations where
shuffles are getting coalesced as if they were copies.
The CoalescerPair class will replace a lot of the spaghetti logic in JoinCopy
later.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105997
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 15 Jun 2010 14:50:42 +0000 (14:50 +0000)]
Add <cstddef> include to get ptrdiff_t, for gcc-4.6; patch by Dimitry Andric.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105994
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Tue, 15 Jun 2010 05:56:31 +0000 (05:56 +0000)]
Generalize the pre-coalescing of extract_subregs feeding reg_sequences,
replacing the overly conservative checks that I had introduced recently to
deal with correctness issues. This makes a pretty noticable difference
in our testcases where reg_sequences are used. I've updated one test to
check that we no longer emit the unnecessary subreg moves.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105991
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Tue, 15 Jun 2010 05:51:27 +0000 (05:51 +0000)]
VMOVQQ and VMOVQQQQ are pseudo instructions and not predicable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105990
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Tue, 15 Jun 2010 04:55:06 +0000 (04:55 +0000)]
Revert 105986; looks like I'd better try bootstrapping.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105988
91177308-0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 15 Jun 2010 04:08:14 +0000 (04:08 +0000)]
Update CMake build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105987
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Tue, 15 Jun 2010 03:13:49 +0000 (03:13 +0000)]
The form of BuildMI used for TAILJMPr was changing the register
containing the target address, an input, into an output. I don't
think this actually broke anything on x86 (it does on ARM), but
it's wrong.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105986
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 15 Jun 2010 00:41:09 +0000 (00:41 +0000)]
Make sure to skip dbg_value instructions when finding an insertion point for
the combined load/store instruction. rdar://
7797940
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105982
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Hunt [Mon, 14 Jun 2010 22:44:26 +0000 (22:44 +0000)]
Add missing include to unbreak the build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105971
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 14 Jun 2010 22:33:34 +0000 (22:33 +0000)]
generate better code in CheckComplexPattern
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105970
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Mon, 14 Jun 2010 22:19:57 +0000 (22:19 +0000)]
Rename functions referring to VMOV immediates to refer to NEON "modified
immediate" operands. These functions have so far only been used for VMOV
but they also apply to other NEON instructions with modified immediate
operands. No functional changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105969
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Mon, 14 Jun 2010 21:30:32 +0000 (21:30 +0000)]
More dbg_value cleanup so the presence of debug info doesn't affect code-gen.
Make sure to skip the dbg_value instructions when moving dups out of the
diamond. rdar://
7797940
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105965
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 14 Jun 2010 21:20:52 +0000 (21:20 +0000)]
Don't produce output only if *all* files are unused.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105962
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 14 Jun 2010 21:06:53 +0000 (21:06 +0000)]
- Do away with SimpleHazardRecognizer.h. It's not used and offers little value.
- Rename ExactHazardRecognizer to PostRAHazardRecognizer and move its header to include to allow targets to extend it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105959
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 14 Jun 2010 20:19:03 +0000 (20:19 +0000)]
apparently lots of dupes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105956
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 14 Jun 2010 20:18:40 +0000 (20:18 +0000)]
Avoid uncessary array copying.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105955
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 14 Jun 2010 20:11:56 +0000 (20:11 +0000)]
fix a nasty bug where we were not treating available_externally
symbols as declarations in the X86 backend. This would manifest
on darwin x86-32 as errors like this with -fvisibility=hidden:
symbol '__ZNSbIcED1Ev' can not be undefined in a subtraction expression
This fixes PR7353.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105954
91177308-0d34-0410-b5e6-
96231b3b80d8