Jakob Stoklund Olesen
fff2c4726b
Also recompute HasPHIKill flags in LiveInterval::RenumberValues.
...
If a phi-def value were removed from the interval, the phi-kill flags are no
longer valid.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110949 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-12 20:38:03 +00:00
Jakob Stoklund Olesen
1b2932024f
Remove trailing whitespace.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110944 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-12 20:01:23 +00:00
Duncan Sands
335db22392
Add a 'normalize' method to the Triple class, which takes a mucked up
...
target triple and straightens it out. This does less than gcc's script
config.sub, for example it turns i386-mingw32 into i386--mingw32 not
i386-pc-mingw32, but it does a decent job of turning funky triples into
something that the rest of the Triple class can understand. The plan
is to use this to canonicalize triple's when they are first provided
by users, and have the rest of LLVM only deal with canonical triples.
Once this is done the special case workarounds in the Triple constructor
can be removed, making the class more regular and easier to use. The
comments and unittests for the Triple class are already adjusted in this
patch appropriately for this brave new world of increased uniformity.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110909 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-12 11:31:39 +00:00
Daniel Dunbar
f1e29d4c21
MC/AsmParser: Push the burdon of emitting diagnostics about unmatched
...
instructions onto the target specific parser, which can do a better job.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110889 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-12 00:55:38 +00:00
Daniel Dunbar
4f98f83459
tblgen/AsmMatcher: Always emit the match function as 'MatchInstructionImpl',
...
target specific parsers can adapt the TargetAsmParser to this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110888 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-12 00:55:32 +00:00
Daniel Dunbar
ee0f32d723
configure: Add detection of the linker version string.
...
- Review appreciated, as long as you understand that I understand that this is
a horrible hack.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110883 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-11 23:53:59 +00:00
Nick Lewycky
7f9ef4bb51
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110861 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-11 22:04:36 +00:00
Dan Gohman
bd4d66d56a
Make LoopPass::getContainedPass return a LoopPass* instead of a Pass*
...
and remove casts from all its callers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110848 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-11 20:34:43 +00:00
Dan Gohman
fa5c2a67c3
Remove BasicBlockPass::runOnFunction, which was unused.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110847 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-11 20:28:16 +00:00
Bruno Cardoso Lopes
ec1355b17b
Remove rsqrt/sqrt_nr intrinsics since there are no more builtins for them on clang
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110845 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-11 19:21:05 +00:00
Dan Gohman
1f9a1608a6
Delete FunctionPass::run, which is unused.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110843 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-11 19:11:05 +00:00
Dan Gohman
73e8800229
Delete FunctionPass::runOnModule, which is unused.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110842 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-11 19:05:53 +00:00
Dan Gohman
b68f274b6d
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110836 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-11 18:15:01 +00:00
Jakob Stoklund Olesen
dfa28b157d
Fix a FIXME. The SlotIndex::Slot enum should be private.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110826 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-11 16:50:17 +00:00
Daniel Dunbar
3c14ca47fc
llvm-mc: Add -show-inst-operands, for dumping the parsed instruction representation before matching.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110791 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-11 06:37:09 +00:00
Daniel Dunbar
b3cb696794
MCAsmParser: Add dump() hook to MCParsedAsmOperand.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110790 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-11 06:37:04 +00:00
Bruno Cardoso Lopes
1a76359347
Remove AVX 256-bit cast intrinsics now that clang is using __builtin_shufflevector for those
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110772 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-11 02:15:33 +00:00
Bruno Cardoso Lopes
9fb2ffd568
Remove AVX 256-bit unpack and interleave intrinsics now that clang is using __builtin_shufflevector for those
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110769 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-11 01:44:11 +00:00
Bruno Cardoso Lopes
b89c631b77
Remove AVX 256-bit shuffle intrinsics now that clang is using __builtin_shufflevector for those
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110767 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-11 01:18:26 +00:00
Rafael Espindola
2d643ef328
Make it possible to set the cpu used for codegen.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110759 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-11 00:15:13 +00:00
Oscar Fuentes
0a16b22e64
Avoid multiple definition warnings when both config.h and
...
llvm-config.h are included.
This is the cmake counterpart of r110547. See bug #7809 .
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110753 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-10 23:48:22 +00:00
Dan Gohman
af08a36bd6
Rename and reorder the arguments to isImpliedCond, for consistency and clarity.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110750 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-10 23:46:30 +00:00
Devang Patel
6bf058c9aa
Add missing argument. CreateCompositeTypeEx() users, please verify.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110717 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-10 20:22:49 +00:00
Rafael Espindola
98197e55c1
Make it possible to set the flags passed to the assembler.
...
Nick, please review.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110705 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-10 18:55:09 +00:00
Jakob Stoklund Olesen
9db3ea46cb
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110703 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-10 18:37:40 +00:00
Jakob Stoklund Olesen
08e93b14c3
Recalculate the spill weight and allocation hint for virtual registers created
...
during live range splitting.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110686 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-10 17:07:22 +00:00
Mikhail Glushenkov
1e67278dd5
Trailing whitespace.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110679 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-10 14:49:24 +00:00
Bruno Cardoso Lopes
0115387005
Remove replicate intrinsics, clang will generate shufflevector for those. The shuffles can't be matched by x86 codegen yet, but will soon
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110647 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-10 02:25:35 +00:00
Bruno Cardoso Lopes
77497bf196
Use i32 instead of i8 for dot product intrinsic
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110643 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-10 01:40:05 +00:00
Jakob Stoklund Olesen
df30cf9e61
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110631 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-10 00:02:26 +00:00
Bruno Cardoso Lopes
d5955f5a23
Fix the last argument type of AVX vblend intrinsics
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110628 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-10 00:00:22 +00:00
Bill Wendling
6cdb1abe4e
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110627 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-09 23:59:04 +00:00
Kevin Enderby
b07ce60981
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110617 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-09 22:52:14 +00:00
Devang Patel
2739896cdd
Refactor.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110607 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-09 21:39:24 +00:00
Rafael Espindola
cbb170d057
Make it possible to set the target triple and expose that with an option in the
...
gold plugin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110604 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-09 21:09:46 +00:00
Duncan Sands
fffe6cf084
Remove the ValueMap operator=, which was wrong (it did't correct the
...
Map pointers of any contained ValueMapCallbackVH's) and unused.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110577 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-09 16:44:56 +00:00
Zhongxing Xu
ba57509221
Change the Interval type to signed in ImmutableIntervalMap.h.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110562 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-09 03:43:39 +00:00
Benjamin Kramer
991808005a
Remove unused variable.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110551 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-08 19:54:10 +00:00
Duncan Sands
3850f5ceda
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110549 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-08 12:57:48 +00:00
Eric Christopher
d442d2846a
Add a bit of a hack to avoid multiple defines of variables in
...
config.h and llvm-config.h. This could probably be improved.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110547 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-08 09:18:29 +00:00
Bill Wendling
c98af3370f
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110539 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-08 05:04:59 +00:00
Oscar Fuentes
652eb506a7
CMake: set configure macro LLVM_PREFIX
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110536 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-08 04:32:21 +00:00
Oscar Fuentes
118eb57d76
CMake: configure header llvm-config.h
...
This is the cmake equivalent of r110532, which fixed bug #7809 .
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110535 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-08 04:17:18 +00:00
Eric Christopher
eec5008e77
Fix PR7809 by creating a header for just llvm variables that can be
...
included in exported interfaces. Update a couple of exported interfaces.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110532 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-08 02:44:17 +00:00
Bill Wendling
73739d0bf1
Add back in r109901, which adds a Compare flag to the target instructions. It's
...
useful after all.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110531 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-08 01:49:35 +00:00
Benjamin Kramer
fff0f11989
Roll back my last two commits, valgrind complains.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110518 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-07 13:27:41 +00:00
Benjamin Kramer
0055fac724
A reference to the Timer's name is safe, it outlives the contents of the vector.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110517 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-07 13:07:57 +00:00
Benjamin Kramer
5aa8df22e7
Shrink PassNameParser's binary size with array_pod_sort.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110512 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-07 11:45:42 +00:00
Owen Anderson
0aede9e2a8
Remove layering violation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110505 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-07 06:01:13 +00:00
Owen Anderson
9773e45a1e
Add an inverse() method to ConstantRange.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110504 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-07 05:47:46 +00:00