Commit Graph

12467 Commits

Author SHA1 Message Date
Daniel Dunbar
0a98bc5619 tblgen/AsmMatcher: Always emit the match function as 'MatchInstructionImpl',
target specific parsers can adapt the TargetAsmParser to this.

llvm-svn: 110888
2010-08-12 00:55:32 +00:00
Daniel Dunbar
cb6029f089 configure: Add detection of the linker version string.
- Review appreciated, as long as you understand that I understand that this is
   a horrible hack.

llvm-svn: 110883
2010-08-11 23:53:59 +00:00
Nick Lewycky
90e835b327 Clean up ConstantRange a bit:
- remove ashr which never worked.
 - fix lshr and shl and add tests.
 - remove dead function "intersect1Wrapped".
 - add a new sub method to subtract ranges, with test.

llvm-svn: 110861
2010-08-11 22:04:36 +00:00
Dan Gohman
2d7bf8c073 Make LoopPass::getContainedPass return a LoopPass* instead of a Pass*
and remove casts from all its callers.

llvm-svn: 110848
2010-08-11 20:34:43 +00:00
Dan Gohman
da120221cb Remove BasicBlockPass::runOnFunction, which was unused.
llvm-svn: 110847
2010-08-11 20:28:16 +00:00
Bruno Cardoso Lopes
3dcdd4b0bf Remove rsqrt/sqrt_nr intrinsics since there are no more builtins for them on clang
llvm-svn: 110845
2010-08-11 19:21:05 +00:00
Dan Gohman
0f3058d723 Delete FunctionPass::run, which is unused.
llvm-svn: 110843
2010-08-11 19:11:05 +00:00
Dan Gohman
18a8add4ab Delete FunctionPass::runOnModule, which is unused.
llvm-svn: 110842
2010-08-11 19:05:53 +00:00
Dan Gohman
54027cf446 Don't use unsigned char for alignments in TargetData. There aren't
that many of these things, so the memory savings isn't significant,
and there are now situations where there can be alignments greater
than 128.

llvm-svn: 110836
2010-08-11 18:15:01 +00:00
Jakob Stoklund Olesen
ccf528b792 Fix a FIXME. The SlotIndex::Slot enum should be private.
llvm-svn: 110826
2010-08-11 16:50:17 +00:00
Daniel Dunbar
4882ffc373 llvm-mc: Add -show-inst-operands, for dumping the parsed instruction representation before matching.
llvm-svn: 110791
2010-08-11 06:37:09 +00:00
Daniel Dunbar
ee80a239ed MCAsmParser: Add dump() hook to MCParsedAsmOperand.
llvm-svn: 110790
2010-08-11 06:37:04 +00:00
Bruno Cardoso Lopes
15a98fafc3 Remove AVX 256-bit cast intrinsics now that clang is using __builtin_shufflevector for those
llvm-svn: 110772
2010-08-11 02:15:33 +00:00
Bruno Cardoso Lopes
423886f4db Remove AVX 256-bit unpack and interleave intrinsics now that clang is using __builtin_shufflevector for those
llvm-svn: 110769
2010-08-11 01:44:11 +00:00
Bruno Cardoso Lopes
dad2a6a89e Remove AVX 256-bit shuffle intrinsics now that clang is using __builtin_shufflevector for those
llvm-svn: 110767
2010-08-11 01:18:26 +00:00
Rafael Espindola
f345661269 Make it possible to set the cpu used for codegen.
llvm-svn: 110759
2010-08-11 00:15:13 +00:00
Oscar Fuentes
32d28f5432 Avoid multiple definition warnings when both config.h and
llvm-config.h are included.

This is the cmake counterpart of r110547. See bug #7809.

llvm-svn: 110753
2010-08-10 23:48:22 +00:00
Dan Gohman
7e49302e9a Rename and reorder the arguments to isImpliedCond, for consistency and clarity.
llvm-svn: 110750
2010-08-10 23:46:30 +00:00
Devang Patel
17606414a4 Add missing argument. CreateCompositeTypeEx() users, please verify.
llvm-svn: 110717
2010-08-10 20:22:49 +00:00
Rafael Espindola
c61143ae75 Make it possible to set the flags passed to the assembler.
Nick, please review.

llvm-svn: 110705
2010-08-10 18:55:09 +00:00
Jakob Stoklund Olesen
245a1faf76 Implement register class inflation.
When splitting a live range, the new registers have fewer uses and the
permissible register class may be less constrained. Recompute the register class
constraint from the uses of new registers created for a split. This may let them
be allocated from a larger set, possibly avoiding a spill.

llvm-svn: 110703
2010-08-10 18:37:40 +00:00
Jakob Stoklund Olesen
e51a747336 Recalculate the spill weight and allocation hint for virtual registers created
during live range splitting.

llvm-svn: 110686
2010-08-10 17:07:22 +00:00
Mikhail Glushenkov
ba7b4da6de Trailing whitespace.
llvm-svn: 110679
2010-08-10 14:49:24 +00:00
Bruno Cardoso Lopes
460703a738 Remove replicate intrinsics, clang will generate shufflevector for those. The shuffles can't be matched by x86 codegen yet, but will soon
llvm-svn: 110647
2010-08-10 02:25:35 +00:00
Bruno Cardoso Lopes
7afe424c59 Use i32 instead of i8 for dot product intrinsic
llvm-svn: 110643
2010-08-10 01:40:05 +00:00
Jakob Stoklund Olesen
1ab2fab3af Transpose the calculation of spill weights such that we are calculating one
register at a time. This turns out to be slightly faster than iterating over
instructions, but more importantly, it allows us to compute spill weights for
new registers created after the spill weight pass has run.

Also compute the allocation hint at the same time as the spill weight. This
allows us to use the spill weight as a cost metric for copies, and choose the
most profitable hint if there is more than one possibility.

The new hints provide a very small (< 0.1%) but universal code size improvement.

llvm-svn: 110631
2010-08-10 00:02:26 +00:00
Bruno Cardoso Lopes
7d73127002 Fix the last argument type of AVX vblend intrinsics
llvm-svn: 110628
2010-08-10 00:00:22 +00:00
Bill Wendling
8a7a43a1cb Merge the OptimizeExts and OptimizeCmps passes into one PeepholeOptimizer
pass. This pass should expand with all of the small, fine-grained optimization
passes to reduce compile time and increase happiment.

llvm-svn: 110627
2010-08-09 23:59:04 +00:00
Kevin Enderby
8303a64b0a Next bit of support for the dwarf .file directive. This patch takes the
previously collected info from the .file directives and outputs the encoded
bytes for it.  For now this is only in the Mach-O streamer but at some point
will move to a more generic place.

llvm-svn: 110617
2010-08-09 22:52:14 +00:00
Devang Patel
8d0c79694e Refactor.
llvm-svn: 110607
2010-08-09 21:39:24 +00:00
Rafael Espindola
fd90a58cd3 Make it possible to set the target triple and expose that with an option in the
gold plugin.

llvm-svn: 110604
2010-08-09 21:09:46 +00:00
Duncan Sands
6eec2f9421 Remove the ValueMap operator=, which was wrong (it did't correct the
Map pointers of any contained ValueMapCallbackVH's) and unused.

llvm-svn: 110577
2010-08-09 16:44:56 +00:00
Zhongxing Xu
d955bbe69b Change the Interval type to signed in ImmutableIntervalMap.h.
llvm-svn: 110562
2010-08-09 03:43:39 +00:00
Benjamin Kramer
bf4f7b3665 Remove unused variable.
llvm-svn: 110551
2010-08-08 19:54:10 +00:00
Duncan Sands
fa440174ee Remove the ValueMap copy constructor. It's not used anywhere,
and removing it catches the mistake of passing a ValueMap by
copy rather than by reference.

llvm-svn: 110549
2010-08-08 12:57:48 +00:00
Eric Christopher
c788c82027 Add a bit of a hack to avoid multiple defines of variables in
config.h and llvm-config.h.  This could probably be improved.

llvm-svn: 110547
2010-08-08 09:18:29 +00:00
Bill Wendling
39c49e3e17 Use the "isCompare" machine instruction attribute instead of calling the
relatively expensive comparison analyzer on each instruction. Also rename the
comparison analyzer method to something more in line with what it actually does.

This pass is will eventually be folded into the Machine CSE pass.

llvm-svn: 110539
2010-08-08 05:04:59 +00:00
Oscar Fuentes
38ae8f5381 CMake: set configure macro LLVM_PREFIX
llvm-svn: 110536
2010-08-08 04:32:21 +00:00
Oscar Fuentes
8a58d72172 CMake: configure header llvm-config.h
This is the cmake equivalent of r110532, which fixed bug #7809.

llvm-svn: 110535
2010-08-08 04:17:18 +00:00
Eric Christopher
33fd5d63b3 Fix PR7809 by creating a header for just llvm variables that can be
included in exported interfaces.  Update a couple of exported interfaces.

llvm-svn: 110532
2010-08-08 02:44:17 +00:00
Bill Wendling
f4d90d9196 Add back in r109901, which adds a Compare flag to the target instructions. It's
useful after all.

llvm-svn: 110531
2010-08-08 01:49:35 +00:00
Benjamin Kramer
a7febd985f Roll back my last two commits, valgrind complains.
llvm-svn: 110518
2010-08-07 13:27:41 +00:00
Benjamin Kramer
bbdbd2be19 A reference to the Timer's name is safe, it outlives the contents of the vector.
llvm-svn: 110517
2010-08-07 13:07:57 +00:00
Benjamin Kramer
ffdaca28a5 Shrink PassNameParser's binary size with array_pod_sort.
llvm-svn: 110512
2010-08-07 11:45:42 +00:00
Owen Anderson
d17104afda Remove layering violation.
llvm-svn: 110505
2010-08-07 06:01:13 +00:00
Owen Anderson
e59c4411b3 Add an inverse() method to ConstantRange.
llvm-svn: 110504
2010-08-07 05:47:46 +00:00
Nick Lewycky
b37e4d1eb2 Fix typo.
llvm-svn: 110502
2010-08-07 05:25:29 +00:00
Dan Gohman
0c6a626902 Remove assignPassManager's default arguments. It's really
confusing to have different arguments for the same virtual
function at different levels of the class hierarchy.

llvm-svn: 110500
2010-08-07 01:25:32 +00:00
Dan Gohman
48a98809af More #include cleanups.
llvm-svn: 110499
2010-08-07 01:18:18 +00:00
Dan Gohman
caf690af8e Delete this explicit assignment operator; it's equivalent to
the implicit one.

llvm-svn: 110498
2010-08-07 01:17:47 +00:00