Chris Lattner
009603a6d2
add iteration support to TinyPtrVector for clang's use.
...
llvm-svn: 135367
2011-07-18 01:53:11 +00:00
Chris Lattner
04b988a1c0
fix a warning in TinyPtrVector, adopt it in SSAUpdater, saving some
...
mallocs.
llvm-svn: 135366
2011-07-18 01:43:58 +00:00
Chris Lattner
fde62dcdb7
introduce a new TinyPtrVector class.
...
llvm-svn: 135365
2011-07-18 01:40:02 +00:00
Benjamin Kramer
e07d9da4f4
Simplify & microoptimize code. No intended functionality change.
...
llvm-svn: 135364
2011-07-18 00:00:20 +00:00
Nadav Rotem
4c2c253f68
Minor code cleanups
...
llvm-svn: 135362
2011-07-17 19:05:00 +00:00
Oscar Fuentes
d6898d0cf5
Fix CMake build on Solaris
...
When building LLVM/Clang on Solaris. The generated makefiles would
have an extraneous semi-colon character in them prior to this change
due to the way the 'CMAKE_CXX_FLAGS' variable was defined. Simply
adjusting the definition by moving the current CMAKE_CXX_FLAGS value
within the quotes solves the problem.
Patch by Art Haas!
llvm-svn: 135361
2011-07-17 17:35:15 +00:00
Chris Lattner
1810c19d8e
tidy up
...
llvm-svn: 135360
2011-07-17 06:01:30 +00:00
Benjamin Kramer
9de5b6c35b
Silence compiler warnings.
...
llvm-svn: 135358
2011-07-16 22:26:27 +00:00
Jakub Staszak
be41018cf4
Remove unused LoopRanges from RegAllocGreedy.
...
llvm-svn: 135354
2011-07-16 20:43:00 +00:00
Jakub Staszak
7bd3be24d8
Remove "LoopInfo.h" include from BranchProbabilityInfo.h.
...
llvm-svn: 135353
2011-07-16 20:31:15 +00:00
Jakub Staszak
a0010953f7
Add MachineBlockFrequency analysis.
...
llvm-svn: 135352
2011-07-16 20:23:20 +00:00
Owen Anderson
03cf89c6f0
Revert r135319 in an attempt to get to unbreak testers.
...
llvm-svn: 135343
2011-07-16 09:17:43 +00:00
Eric Christopher
f49a77b3b6
More minor adjustments.
...
llvm-svn: 135342
2011-07-16 07:28:35 +00:00
Matt Beaumont-Gay
8c4a5f3635
Silence unused variable warning
...
llvm-svn: 135339
2011-07-16 04:18:47 +00:00
Eli Friedman
f6cac8a620
Make the disassembler able to disassemble a bunch of instructions with names in the TableGen files containing "64" on x86-32. This includes a bunch of x87 instructions, like fld, and a bunch of SSSE3 instructions on MMX registers like pshufb. Part of PR8873.
...
llvm-svn: 135337
2011-07-16 02:41:28 +00:00
Andrew Trick
3300087d49
indvars: fix a pass-sensitivity issue that would hit the SCEVExpander
...
assertion I added in r135333. Check for the existence of a preheader
before expanding a recurrence.
llvm-svn: 135335
2011-07-16 01:18:53 +00:00
Andrew Trick
3b06e51b87
indvars: remove ExprToIVMap because it won't be needed by LFTR.
...
llvm-svn: 135334
2011-07-16 01:06:48 +00:00
Andrew Trick
b2c2eec80d
Fix SCEVEXpander to handle arbitrary phi expansion. Includes two
...
related bug fixes and corresponding assertions for uninitialized data
and missing NULL check. Test cases will be included with the new LFTR.
llvm-svn: 135333
2011-07-16 00:59:39 +00:00
Bruno Cardoso Lopes
d258749f73
Add AVX 128-bit patterns for sint_to_fp
...
llvm-svn: 135332
2011-07-16 00:50:20 +00:00
Eric Christopher
542f64abc9
Finish propagating %asmtmp->%1 change.
...
llvm-svn: 135330
2011-07-16 00:26:07 +00:00
Jakob Stoklund Olesen
25cece01c9
He said *before* the last split point.
...
This should unbreak the build-self-4-mingw32 tester. I have a very
complicated test case that I will try to clean up.
llvm-svn: 135329
2011-07-16 00:13:30 +00:00
Chris Lattner
b09652e74d
fix rdar://9776316 - type remapping needed for inline asm blobs,
...
fixing some objc llvm-test crashes with LTO.
llvm-svn: 135324
2011-07-15 23:18:40 +00:00
Chris Lattner
7fc89c5ff8
deconstify getType()'s.
...
llvm-svn: 135323
2011-07-15 23:15:45 +00:00
Dan Gohman
8e056f4a49
LegalizeDAG doesn't need its own copy of this enum.
...
llvm-svn: 135320
2011-07-15 22:51:43 +00:00
Owen Anderson
cd207640a2
Get rid of the separate opcodes for the Darwin versions of tBL, tBLXi, and tBLXr, using pseudo-instructions to lower to the single final opcode. Update the ARM disassembler for this change.
...
llvm-svn: 135319
2011-07-15 22:49:31 +00:00
Dan Gohman
a44add3a49
Delete LegalizeDAG's own version of isTypeLegal and getTypeAction
...
and just use the ones from TargetLowering directly.
llvm-svn: 135318
2011-07-15 22:39:09 +00:00
Bruno Cardoso Lopes
d5b62f3403
Fix a couple of things:
...
1) Make non-legal 256-bit loads to be promoted to v4i64. This lets us
canonize the loads and handle things the same way we use to handle
for 128-bit registers. Despite of what one of the removed comments
explained, the load promotion would not mess with VPERM, it's only a
matter of doing the appropriate bitcasts when this instructions comes
to be introduced. Also make LOAD v8i32 legal.
2) Doing 1) exposed two bugs:
- v4i64 was being promoted to itself for several opcodes (introduced
in r124447 by David Greene) causing endless recursion and the stack to
explode.
- there was no support for allOnes BUILD_VECTORs and ANDNP would fail to
match because it was generating early target constant pools during
lowering.
3) The testcases are already checked-in, doing 1) exposed the
bugs in the current testcases.
4) Tidy up code to be more clear and explicit about AVX.
llvm-svn: 135313
2011-07-15 22:24:33 +00:00
Bruno Cardoso Lopes
2a23e486ad
Add a few patterns for 256-bit bitcasts. No testcases now, they are
...
comming together with other tests.
llvm-svn: 135312
2011-07-15 22:24:17 +00:00
Dan Gohman
f41cbc8222
Delete an unused variable and a redundant assert.
...
llvm-svn: 135311
2011-07-15 22:19:02 +00:00
Jakob Stoklund Olesen
987cd08002
Extract parts of RAGreedy::splitAroundRegion as SplitKit methods.
...
This gets rid of some of the gory splitting details in RAGreedy and
makes them available to future SplitKit clients.
Slightly generalize the functionality to support multi-way splitting.
Specifically, SplitEditor::splitLiveThroughBlock() supports switching
between different register intervals in a block.
llvm-svn: 135307
2011-07-15 21:47:57 +00:00
Dan Gohman
038295aff9
Modernize comments.
...
llvm-svn: 135305
2011-07-15 21:42:20 +00:00
Eli Friedman
6bd9cfed88
PR10370: Make sure we know how to relax push correctly on x86-64.
...
llvm-svn: 135303
2011-07-15 21:28:39 +00:00
Devang Patel
647ad13add
Use DebugLoc directly to map inlined functions' instructions to respective lexical scope.
...
llvm-svn: 135302
2011-07-15 21:25:44 +00:00
Chad Rosier
936a952c82
A real testcase for r135286.
...
llvm-svn: 135299
2011-07-15 20:58:38 +00:00
Eric Christopher
b719615626
Update these tests, no longer outputting names for the variables.
...
llvm-svn: 135298
2011-07-15 20:58:16 +00:00
Jakub Staszak
ada22d8fca
Fix pointer heuristic. Check whether predicator is ICMP_NE instead of if it is
...
not isEquality().
llvm-svn: 135296
2011-07-15 20:51:06 +00:00
Eli Friedman
c8f855380b
A couple of minor fixes to the OCaml tutorial. PR10025 and PR10316. Patches by Damien Schoof!
...
llvm-svn: 135293
2011-07-15 20:03:30 +00:00
Chad Rosier
1b9b65f30a
Add testcase for r135286.
...
llvm-svn: 135291
2011-07-15 19:06:58 +00:00
Owen Anderson
7a380bac06
Remove VMOVDneon and VMOVQ, which are just aliases for VORR. This continues to simplify the path towards an auto-generated disassembler.
...
llvm-svn: 135290
2011-07-15 18:46:47 +00:00
Benjamin Kramer
5836701780
Teach llvm-objdump to disassemble sections symbol by symbol.
...
llvm-svn: 135289
2011-07-15 18:39:24 +00:00
Benjamin Kramer
5936e08079
ObjectFile: Add a method to check whether a section contains a symbol.
...
- No ELF or COFF implementation yet, I don't have a way to test that.
Should be straightforward to add though.
llvm-svn: 135288
2011-07-15 18:39:21 +00:00
Kevin Enderby
fc1d81a6a8
Have tblgen produce code that tolerates operands that return an invalid match class.
...
llvm-svn: 135287
2011-07-15 18:30:43 +00:00
Chad Rosier
bdf65ac132
Disable loop idiom recognition of memset/memcpy if the function being compiled
...
is named after a common idiom (i.e., memset/memcpy). Otherwise, we can run into
infinite recursion. Ideally, the user should use the correct -fno-builtin flag,
but in case they don't we should play nicely.
rdar://9763412
llvm-svn: 135286
2011-07-15 18:25:04 +00:00
Owen Anderson
4cf53f7ec4
Remove unnecessary duplicate instruction definitions that simply overloaded the type of VEXT. This can be achieved with a Pat definition, and is much more disassembler friendly.
...
llvm-svn: 135283
2011-07-15 17:48:05 +00:00
Benjamin Kramer
3a3a5a7f5e
MachOObjectFile: Get symbol functions ready for 64 bit.
...
llvm-svn: 135282
2011-07-15 17:32:45 +00:00
Frits van Bommel
6427dc44b9
No need to explicitly invoke the ArrayRef constructor here.
...
llvm-svn: 135281
2011-07-15 17:13:23 +00:00
Devang Patel
d539f30c73
Eliminate redundant map.
...
llvm-svn: 135278
2011-07-15 16:38:42 +00:00
NAKAMURA Takumi
57b7a96900
Eliminate "const" from extern const to fix breakeage since r135184 on msvc.
...
MSVC decorates (and distinguishes) "const" in mangler. It brought linkage error between "extern const" declarations and definitions.
llvm-svn: 135269
2011-07-15 12:50:21 +00:00
Francois Pichet
9d2066b6d1
For my ego.
...
llvm-svn: 135268
2011-07-15 11:26:11 +00:00
Frits van Bommel
9630dc9ed8
In Twine::str(), if the Twine stores only a std::string, just return a direct copy of that instead of first copying to a SmallString and converting that to a std::string. Also fix some indentation.
...
llvm-svn: 135267
2011-07-15 11:05:37 +00:00