Jim Grosbach
f3f401f911
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.
llvm-svn: 106204
2010-06-17 02:02:03 +00:00
Jim Grosbach
0cdb6c563a
ISD::MEMBARRIER should lower to a libcall (__sync_synchronize) if the target
...
sets the legalize action to Expand.
llvm-svn: 106203
2010-06-17 02:00:53 +00:00
Bruno Cardoso Lopes
bb6aa785be
Fix the handling of !if result, avoiding null results for non 'int'.
...
llvm-svn: 106201
2010-06-17 01:50:39 +00:00
Jim Grosbach
8d77e0298c
simplify code a bit and add a more explanatory assert for cases that
...
previously would result in 'cannot yet select' errors.
llvm-svn: 106199
2010-06-17 01:37:00 +00:00
Jason Molenda
830bbc15f4
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.
llvm-svn: 106197
2010-06-17 01:23:24 +00:00
Eric Christopher
bb75081f00
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.
llvm-svn: 106194
2010-06-17 00:51:48 +00:00
Eric Christopher
b92292eb08
Update comment.
...
llvm-svn: 106191
2010-06-17 00:49:46 +00:00
Bruno Cardoso Lopes
e05b953fcd
For a tablegen expression such as !if(a,b,c), let 'a'
...
be evaluated for 'bit' operators
llvm-svn: 106185
2010-06-17 00:31:36 +00:00
Alexis Hunt
3d6b8fba2f
Fix the typo in my previous one-line commit.
...
llvm-svn: 106179
2010-06-17 00:10:16 +00:00
Alexis Hunt
a2dbaedfe6
Make sure CMake can build the files added by my previous commit.
...
llvm-svn: 106178
2010-06-16 23:52:37 +00:00
Alexis Hunt
146bbb1662
Add preliminary clang attribute generation support.
...
The attribute class generation support is still somewhat limited.
See the accompanying clang commit for more details.
llvm-svn: 106174
2010-06-16 23:45:50 +00:00
Jim Grosbach
b5bea8fdba
format and 80-column cleanup
...
llvm-svn: 106173
2010-06-16 23:45:49 +00:00
Bruno Cardoso Lopes
de4632839c
let the '!eq' expression support 'int' and 'bit' types
...
llvm-svn: 106171
2010-06-16 23:24:12 +00:00
Jim Grosbach
f5107a8ada
remove trailing whitespace
...
llvm-svn: 106164
2010-06-16 22:41:09 +00:00
Douglas Gregor
48c6838611
Revert r106117, which was the result of me misreading the C++98/03
...
specification.
llvm-svn: 106162
2010-06-16 22:32:18 +00:00
Jakob Stoklund Olesen
a97220ab96
Don't attempt preserving conservative kill flags. We were doing it wrong.
...
This is before LiveVariables anyway, where these kill flags are recalculated.
llvm-svn: 106157
2010-06-16 22:11:08 +00:00
Bob Wilson
d81a716d59
Remove the hidden "neon-reg-sequence" option. The reg sequences are working
...
now, so there's no need to disable them.
llvm-svn: 106155
2010-06-16 21:34:01 +00:00
Eric Christopher
9c56c0a851
In progress on 32-bit addends.
...
llvm-svn: 106154
2010-06-16 21:32:38 +00:00
Jakob Stoklund Olesen
4f5d1d7004
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
llvm-svn: 106152
2010-06-16 21:29:40 +00:00
Jim Grosbach
67b46d6303
A few more places where SCEVExpander bits need to skip over debug intrinsics
...
when iterating through instructions. Yet more work for rdar://7797940
llvm-svn: 106149
2010-06-16 21:13:38 +00:00
Jim Grosbach
02a6b7e02e
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(?).
llvm-svn: 106146
2010-06-16 21:07:06 +00:00
Daniel Dunbar
15c2792d21
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.
llvm-svn: 106143
2010-06-16 20:04:32 +00:00
Daniel Dunbar
2c6d6693e2
MC: Simplify MCAssembler::isSymbolLinkerVisible to only take an MCSymbol.
...
llvm-svn: 106142
2010-06-16 20:04:29 +00:00
Daniel Dunbar
7631ddfec4
MC: Lift SwitchSection() and Finish() into MCObjectStreamer.
...
llvm-svn: 106141
2010-06-16 20:04:25 +00:00
Daniel Dunbar
d52ca1c3e5
MC: Factor out an MCObjectStreamer class, which will be shared by the concrete
...
object file format writers.
llvm-svn: 106140
2010-06-16 20:04:22 +00:00
Devang Patel
877e8c6da0
Be specific. Use FileCheck.
...
llvm-svn: 106135
2010-06-16 19:39:45 +00:00
Rafael Espindola
6ccafc9391
Make sure that simplify libcalls does not replace a call with one calling
...
convention with a new call with a different calling convention.
llvm-svn: 106134
2010-06-16 19:34:01 +00:00
Jim Grosbach
de52e401c9
add FIXME
...
llvm-svn: 106126
2010-06-16 18:45:08 +00:00
Devang Patel
dcb177952d
This requires more investigation. Unblock buildbots for now.
...
llvm-svn: 106122
2010-06-16 18:19:49 +00:00
Devang Patel
7b26b091b6
Update test to explicitly capture llc output.
...
llvm-svn: 106121
2010-06-16 18:04:12 +00:00
Bill Wendling
670df11fd6
Improve comment to include that the use of a preg is also verboten in this situation.
...
llvm-svn: 106119
2010-06-16 18:01:31 +00:00
Douglas Gregor
5ca7ded45a
Eliminate a redundant "typename" keyword
...
llvm-svn: 106117
2010-06-16 17:42:01 +00:00
Benjamin Kramer
01a44323f0
TODO--
...
llvm-svn: 106102
2010-06-16 15:47:00 +00:00
Benjamin Kramer
f600dc2eed
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.
llvm-svn: 106097
2010-06-16 10:30:29 +00:00
Evan Cheng
46b89e05fd
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.
...
llvm-svn: 106091
2010-06-16 07:35:02 +00:00
Devang Patel
108d77796f
Check function pointer first, before comparing function names.
...
llvm-svn: 106088
2010-06-16 06:42:02 +00:00
Devang Patel
3282324020
Use separate named MDNode to hold each function's local variable info.
...
This speeds up local variable handling in DwarfDebug.
llvm-svn: 106075
2010-06-16 00:53:55 +00:00
Eric Christopher
db2cef56c9
Don't emit the linkage for initializer label for mach-o tls.
...
llvm-svn: 106073
2010-06-16 00:27:30 +00:00
Eric Christopher
62a7f68562
Fix indentation.
...
llvm-svn: 106072
2010-06-16 00:26:36 +00:00
Bill Wendling
9b8de6dcec
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.
llvm-svn: 106066
2010-06-15 23:46:31 +00:00
Eric Christopher
3d8b19a2f9
For 32-bit non-pic tlv mach-o addressing we don't need a pic base or
...
a relative address.
llvm-svn: 106064
2010-06-15 23:08:42 +00:00
Stuart Hastings
5dd588e7d9
Added a comment.
...
llvm-svn: 106063
2010-06-15 23:06:30 +00:00
Eric Christopher
6c154dc98d
Some more work on mach-o TLV relocations.
...
llvm-svn: 106062
2010-06-15 22:59:05 +00:00
Dale Johannesen
f35ca445f6
Add file missing from previous commit.
...
llvm-svn: 106058
2010-06-15 22:24:08 +00:00
Bob Wilson
06bef080a3
Fix 80col violations, remove trailing whitespace, and clarify a comment.
...
llvm-svn: 106057
2010-06-15 22:18:54 +00:00
Rafael Espindola
e2cf1da648
Update test to match recent llvm-gcc change.
...
llvm-svn: 106056
2010-06-15 22:16:40 +00:00
Nate Begeman
e25fc6a8e4
Make VC++ happy
...
llvm-svn: 106054
2010-06-15 22:10:31 +00:00
Dale Johannesen
e60351e83a
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.
llvm-svn: 106053
2010-06-15 22:08:33 +00:00
Jakob Stoklund Olesen
7fe0620525
Remove the local register allocator.
...
Please use the fast allocator instead.
llvm-svn: 106051
2010-06-15 21:58:33 +00:00
Dale Johannesen
4264f09fe2
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.
llvm-svn: 106049
2010-06-15 21:36:43 +00:00