Bill Wendling
819c356a09
Turn off critical edge splitting for landing pads. The introduction of a
...
non-landing pad basic block as the successor to a block that ends in an
unconditional jump will cause block folding to remove the added block as a
successor. Thus eventually removing it AND the landing pad entirely. Critical
edge splitting is an optimization, so we can safely turn it off when dealing
with landing pads.
llvm-svn: 91634
2009-12-17 23:42:32 +00:00
Jeffrey Yasskin
0de0ce11d8
Revert r91623 to unbreak the buildbots.
...
llvm-svn: 91632
2009-12-17 22:44:34 +00:00
Eli Friedman
250b119d98
Allow instcombine to combine "sext(a) >u const" to "a >u trunc(const)".
...
llvm-svn: 91631
2009-12-17 22:42:29 +00:00
Jeffrey Yasskin
2b73a4e90f
Don't codegen available_externally functions. Fixes http://llvm.org/PR5735 .
...
llvm-svn: 91626
2009-12-17 21:35:29 +00:00
Eli Friedman
7cc86b4cc6
Make the ptrtoint comparison simplification work if one side is a global.
...
llvm-svn: 91624
2009-12-17 21:27:47 +00:00
Evan Cheng
e43b403c87
Remove an unused option.
...
llvm-svn: 91623
2009-12-17 21:23:58 +00:00
Chris Lattner
cbc0804c71
tabs -> spaces.
...
llvm-svn: 91622
2009-12-17 21:23:46 +00:00
Eli Friedman
5842c9968a
Slightly generalize transformation of memmove(a,a,n) so that it also applies
...
to memcpy. (Such a memcpy is technically illegal, but in practice is safe
and is generated by struct self-assignment in C code.)
llvm-svn: 91621
2009-12-17 21:07:31 +00:00
Jeffrey Yasskin
5908f1e27b
Make Path use StringRef instead of std::string where possible.
...
llvm-svn: 91620
2009-12-17 21:02:39 +00:00
Bill Wendling
03b5aed7d8
Temporarily revert 91337. It's causing testcase failures.
...
$ svn merge -c -91337 https://llvm.org/svn/llvm-project/llvm/trunk
--- Reverse-merging r91337 into '.':
U lib/CodeGen/AsmPrinter/DwarfException.cpp
llvm-svn: 91618
2009-12-17 20:41:01 +00:00
Steve Naroff
d3ab107432
Fix Windows build breakage...
...
llvm-svn: 91617
2009-12-17 20:39:34 +00:00
Ken Dyck
df5561db78
Introduce EVT::getHalfSizedIntegerVT() for use in ExpandUnalignedStore() in
...
LegalizeDAG.cpp. Unlike the code it replaces, which simply decrements the simple
type by one, getHalfSizedIntegerVT() searches for the smallest simple integer
type that is at least half the size of the type it is called on. This approach
has the advantage that it will continue working if a new value type (such as
i24) is added to MVT.
Also, in preparation for new value types, remove the assertions that
non-power-of-2 8-bit-mutiple types are Extended when legalizing extload and
truncstore operations.
llvm-svn: 91614
2009-12-17 20:09:43 +00:00
Chris Lattner
50272752fa
finish cleaning up StructLayoutMap.
...
llvm-svn: 91612
2009-12-17 20:00:21 +00:00
Jeffrey Yasskin
28f244863e
This fixes a memory leak in OpaqueType found by Google's internal heapchecker.
...
llvm-svn: 91611
2009-12-17 19:55:06 +00:00
Eric Christopher
2d1ffe028f
Fix unused variable warning.
...
llvm-svn: 91609
2009-12-17 19:07:19 +00:00
Bob Wilson
f3927b7994
Re-revert 91459. It's breaking the x86_64 darwin bootstrap.
...
llvm-svn: 91607
2009-12-17 18:34:24 +00:00
Evan Cheng
ece104a0e1
Remove debugging code.
...
llvm-svn: 91604
2009-12-17 18:03:12 +00:00
Jim Grosbach
67584fe874
Add more detail for getting started on Windows.
...
Patch from jon.forums at gmail.com
llvm-svn: 91603
2009-12-17 17:18:11 +00:00
Ken Dyck
798493285c
In LowerEXTRACT_VECTOR_ELT, force an i32 value type for PEXTWR instead of
...
incrementing the simple value type of the 16-bit type, which would give the
wrong type if an intemediate MVT (such as i24) were introduced.
llvm-svn: 91602
2009-12-17 15:31:52 +00:00
Evan Cheng
090ac0865a
Revert 91280-91283, 91286-91289, 91291, 91293, 91295-91296. It apparently introduced a non-deterministic behavior in the optimizer somewhere.
...
llvm-svn: 91598
2009-12-17 09:39:49 +00:00
Mikhail Glushenkov
108b0682e4
Regenerate.
...
llvm-svn: 91595
2009-12-17 07:49:26 +00:00
Mikhail Glushenkov
1fe2678a06
Add a 'set_option' action for use in OptionPreprocessor.
...
llvm-svn: 91594
2009-12-17 07:49:16 +00:00
Mikhail Glushenkov
9bbd4eb9f5
Refactoring, no functionality change.
...
llvm-svn: 91593
2009-12-17 07:48:49 +00:00
Mikhail Glushenkov
bea9ce8826
s/TokenizeCmdline/TokenizeCmdLine/
...
llvm-svn: 91592
2009-12-17 07:48:34 +00:00
Chandler Carruth
187220e3f5
Update CMake build to include HexDisassembler.cpp.
...
llvm-svn: 91589
2009-12-17 06:35:17 +00:00
Eli Friedman
e67cae33e1
Aggressively flip compare constant expressions where appropriate; constant
...
folding in particular expects null to be on the RHS.
llvm-svn: 91587
2009-12-17 06:07:04 +00:00
Bob Wilson
1c00b6964f
Fix a comment grammaro.
...
llvm-svn: 91584
2009-12-17 05:07:36 +00:00
Bob Wilson
ff43ab88ff
BIT_CONVERT nodes are used for vector types, too.
...
llvm-svn: 91582
2009-12-17 05:05:36 +00:00
Sean Callanan
7e64550747
Test harness for the LLVM disassembler. When invoked
...
with -disassemble, llvm-mc now accepts lines of the
form
0x00 0x00
and passes the resulting bytes to the disassembler for
the chosen (or default) target, printing the result.
llvm-svn: 91579
2009-12-17 01:49:59 +00:00
Evan Cheng
aadf060b92
Revert this dag combine change:
...
Fold (zext (and x, cst)) -> (and (zext x), cst)
DAG combiner likes to optimize expression in the other way so this would end up cause an infinite looping.
llvm-svn: 91574
2009-12-17 00:40:05 +00:00
Johnny Chen
7f30b64dce
Renamed "tCMNZ" to "tCMNz" to be consistent with other similar namings.
...
llvm-svn: 91571
2009-12-16 23:36:52 +00:00
John McCall
30f2ac714b
Silence a clang warning about the deprecated (but perfectly reasonable in
...
context) increment-of-bool idiom.
llvm-svn: 91564
2009-12-16 20:31:50 +00:00
Daniel Dunbar
b827e52638
Reapply r91392, it was only unmasking the bug, and since TOT is still broken having it reverted does no good.
...
llvm-svn: 91560
2009-12-16 20:10:05 +00:00
Daniel Dunbar
ab42d42390
Reapply r91459, it was only unmasking the bug, and since TOT is still broken having it reverted does no good.
...
llvm-svn: 91559
2009-12-16 20:09:53 +00:00
Jim Grosbach
69461f50c1
Mark STREX* as earlyclobber for the success result register.
...
llvm-svn: 91555
2009-12-16 19:44:06 +00:00
Jim Grosbach
2a282f2f86
Add @earlyclobber TableGen constraint
...
llvm-svn: 91554
2009-12-16 19:43:02 +00:00
Bill Wendling
8478ed5d18
Remove superfluous 'extern' variable that was causing a warning with clang.
...
llvm-svn: 91552
2009-12-16 19:36:42 +00:00
Jakob Stoklund Olesen
ec20a88a57
Reuse lowered phi nodes.
...
Tail duplication produces lots of identical phi nodes in different basic
blocks. Teach PHIElimination to reuse the join registers when lowering a phi
node that is identical to an already lowered node. This saves virtual
registers, and more importantly it avoids creating copies the the coalescer
doesn't know how to eliminate.
Teach LiveIntervalAnalysis about the phi joins with multiple uses.
This patch significantly reduces code size produced by -pre-regalloc-taildup.
llvm-svn: 91549
2009-12-16 18:55:53 +00:00
Daniel Dunbar
1482b5aa16
Fix one more missing this-> to placate that picky clang++.
...
llvm-svn: 91536
2009-12-16 11:38:03 +00:00
Daniel Dunbar
133efc317e
Revert "Reapply 91184 with fixes and an addition to the testcase to cover the
...
problem", this broke llvm-gcc bootstrap for release builds on
x86_64-apple-darwin10.
This reverts commit db22309800b224a9f5f51baf76071d7a93ce59c9.
llvm-svn: 91534
2009-12-16 10:56:17 +00:00
Daniel Dunbar
df45b70c1e
Revert "Initial work on disabling the scheduler. This is a work in progress, and
...
this", this broke llvm-gcc bootstrap for release builds on
x86_64-apple-darwin10.
llvm-svn: 91533
2009-12-16 10:56:02 +00:00
Chris Lattner
f278addbdc
reapply my strstr optimization. I have reproduced the x86-64 bootstrap
...
miscompile (i386.o miscompares) but it happens both with and without
this patch.
llvm-svn: 91532
2009-12-16 09:32:05 +00:00
Chris Lattner
9527af246e
fix more missing this->'s to placate clang++
...
llvm-svn: 91531
2009-12-16 09:17:12 +00:00
Chris Lattner
5f5fffc5b2
Fix a missing this-> that clang++ notices.
...
llvm-svn: 91530
2009-12-16 09:09:54 +00:00
Chris Lattner
4ea86c460a
now that libsystem no longer uses SmallVector, we can move
...
SmallVectorBase::grow_pod out of line, finally satisfying PR3758.
llvm-svn: 91529
2009-12-16 08:44:24 +00:00
Chris Lattner
a6fc9de9fc
remove use of SmallVector from Path::makeUnique. Path::makeUnique
...
is not used by anything performance sensitive, so just use std::string.
llvm-svn: 91528
2009-12-16 08:40:44 +00:00
Chris Lattner
e6be85661d
eliminate an extraneous use of SmallVector in a case where
...
a fixed size buffer is perfectly fine.
llvm-svn: 91527
2009-12-16 08:35:54 +00:00
Chris Lattner
5c0917c175
factor out the grow() method for all pod implementations into one
...
common function. It is still an inline method, which will be fixed next.
llvm-svn: 91526
2009-12-16 08:34:40 +00:00
Victor Hernandez
2003b90807
Use different name for argument and field
...
llvm-svn: 91524
2009-12-16 08:10:57 +00:00
Chris Lattner
f684b9039d
pull destroy_range and uninitialized_copy up to the
...
SmallVectorTemplateBase class, which allows us to statically
dispatch on isPodLike instead of dynamically.
llvm-svn: 91523
2009-12-16 08:09:23 +00:00