Dan Gohman
1d685a46bf
CodeGen support for insertvalue and extractvalue, and for loads and
...
stores of aggregate values.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52069 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-07 02:02:36 +00:00
Owen Anderson
2d389e8ad7
Connect successors before creating the DAG node for the branch. This has
...
no visible functionality change, but enables a future patch where node creation
will update the CFG if it decides to create an unconditional rather than a conditional branch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52067 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-07 00:00:23 +00:00
Gabor Greif
76aca6f38f
get rid of ExtractValueInst::init's Value argument, it is already passed to the UnaryInstruction ctor
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52064 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-06 21:06:32 +00:00
Evan Cheng
929b39f0a0
Typo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52062 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-06 21:00:10 +00:00
Gabor Greif
d4f268bdd4
make ExtractValueInst derived from UnaryInstruction
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52061 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-06 20:28:12 +00:00
Evan Cheng
877333b99d
Enable stack coloring by default.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52057 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-06 19:52:44 +00:00
Evan Cheng
6b4a65f4e7
PPC preferred loop alignment is 16.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52056 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-06 19:50:46 +00:00
Devang Patel
4c37c07ee3
LoopSimplify preserves AA.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52053 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-06 17:50:58 +00:00
Devang Patel
8fb6a94b69
Print debug message only if there are dead passes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52052 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-06 17:50:36 +00:00
Owen Anderson
30073ff412
Include loop deletion and the ADCE rewrite in the release notes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52048 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-06 16:23:15 +00:00
Anton Korobeynikov
7aa8d44429
Testcase for PR2418
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52047 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-06 16:08:56 +00:00
Anton Korobeynikov
001c73e3a1
Handle assembler identifiers specially in CBE. This fixes PR2418.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52046 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-06 16:08:26 +00:00
Duncan Sands
3b3adbb745
Tighten up the abstraction slightly.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52045 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-06 12:49:32 +00:00
Duncan Sands
83ec4b6711
Wrap MVT::ValueType in a struct to get type safety
...
and better control the abstraction. Rename the type
to MVT. To update out-of-tree patches, the main
thing to do is to rename MVT::ValueType to MVT, and
rewrite expressions like MVT::getSizeInBits(VT) in
the form VT.getSizeInBits(). Use VT.getSimpleVT()
to extract a MVT::SimpleValueType for use in switch
statements (you will get an assert failure if VT is
an extended value type - these shouldn't exist after
type legalization).
This results in a small speedup of codegen and no
new testsuite failures (x86-64 linux).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52044 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-06 12:08:01 +00:00
Zhou Sheng
cc41940dff
As Chris suggested, handle the situation if ShAmt larger than BitWidth,
...
otherwise, opt might crash.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52041 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-06 08:32:05 +00:00
Evan Cheng
9c3c221364
Refine stack slot interval weight computation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52040 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-06 07:54:39 +00:00
Anton Korobeynikov
b0a882f540
Turn stdout into binary mode during bitcode emission.
...
This is necessary on windows targets, since stdout is in text mode there.
Patch by Julien Lerouge!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52038 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-06 07:24:01 +00:00
Anton Korobeynikov
232a4ab77a
Provide hooks for libgcc symbols' address resolution inside lli on mingw32.
...
Patch by Julien Lerouge!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52037 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-06 07:20:07 +00:00
Bruno Cardoso Lopes
0af5e095ad
Added custom isel for MUL, SDIVREM, UDIVREM, SMUL_LOHI and UMUL_LOHI nodes
...
MUL is not anymore directly matched because its a pseudoinstruction.
LogicI class fixed to zero-extend immediates.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52036 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-06 06:37:31 +00:00
Bruno Cardoso Lopes
07cec75913
Added custom SELECT_CC lowering
...
Added special isel for ADDE,SUBE and new patterns to match SUBC,ADDC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52031 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-06 00:58:26 +00:00
Dan Gohman
836bfcd689
Revert 52002.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52030 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-05 23:57:06 +00:00
Chris Lattner
5c490610a1
Expose a public interface to this pass.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52029 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-05 23:45:18 +00:00
Chris Lattner
15ccbf59a9
Let libcall semantics decide whether it knows about functions
...
with definitions or not.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52028 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-05 23:38:34 +00:00
Evan Cheng
6fc5b48f64
Warn of potential violations of strict aliasing rules.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52027 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-05 23:00:08 +00:00
Evan Cheng
1b022cf688
Don't break strict aliasing.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52026 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-05 22:59:21 +00:00
Devang Patel
83a15d7209
Describe loop index split.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52021 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-05 21:44:00 +00:00
Dan Gohman
6e60ea42e8
Wording fixes. Thanks Bill!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52017 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-05 18:45:33 +00:00
Owen Anderson
417dc2f595
Remove debugging code.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52016 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-05 18:43:34 +00:00
Gabor Greif
96a89c70df
fix typos, tweak stuff, make it to validate
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52015 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-05 18:39:01 +00:00
Owen Anderson
a9efb264b0
Use the newly created helper on LiveIntervals.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52013 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-05 17:22:53 +00:00
Owen Anderson
c4dc132c8a
Add a helper for constructing new live ranges that ended from an instruction to the end of its MBB.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52012 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-05 17:15:43 +00:00
Dan Gohman
4e16d4000b
Move i128 on x86-64 from the codegen section to the x86-specific section.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52010 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-05 16:15:39 +00:00
Dan Gohman
9c399265cb
Add a note about improved alignment detection.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52009 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-05 15:49:29 +00:00
Dan Gohman
809d91e306
Add a note mentioning --view-sunit-dags improvements.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52008 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-05 15:46:36 +00:00
Dan Gohman
85765e62dd
Expand the bullet item about i128 support and APInt usage in codegen.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52007 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-05 15:43:11 +00:00
Zhou Sheng
b73afcf6dc
Add a test case for opt -instcombine bug fix in revision 52003.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52004 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-05 14:25:11 +00:00
Zhou Sheng
17183ab973
If BitWidth equals to ShtAmt, the RHSKnownZero[BitWidth-ShiftAmt-1] will
...
crash the opt. Just fix this.
Test case in llvm/test/Transforms/InstCombine/2008-06-05-ashr-crash.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52003 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-05 14:23:44 +00:00
Matthijs Kooijman
411e6a5efb
Change the Verifier to support returning first class aggregrates.
...
Add a testcase for functions returning first class aggregrates.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52002 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-05 14:00:36 +00:00
Zhou Sheng
b499c86331
Add a test case for APInt bug fix in r51999.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52000 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-05 13:42:21 +00:00
Zhou Sheng
bfde7d6b9e
As comments said, for negative value, the arithmetic
...
over-shift-right should return -1. So here it should be signed-extended,
when bitwidth larger than 64.
test case: llvm/test/ExecutionEngine/2008-06-05-APInt-OverAShr.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51999 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-05 13:27:38 +00:00
Nick Lewycky
ef7d2bb8d3
Escape "$#".
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51998 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-05 12:54:44 +00:00
Matthijs Kooijman
02518140ac
Learn ScalarReplAggregrates how stores and loads of first class aggregrates
...
work and how to replace them into individual values. Also, when trying to
replace an aggregrate that is used by load or store with a single (large)
integer, don't crash (but don't replace the aggregrate either).
Also adds a testcase for both structs and arrays.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51997 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-05 12:51:53 +00:00
Gordon Henriksen
1494bccef7
Move this to the proper section.
...
I misread Optimizer Improvements as Other Improvements for some reason.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51996 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-05 12:51:50 +00:00
Gordon Henriksen
4ca93d004b
Adding release notes for bindings improvements.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51995 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-05 12:48:32 +00:00
Matthijs Kooijman
47c6fd7317
Let StructRetPromotion check if all if its users are really calls or invokesn,
...
not other instructions. This fixes a crash with the added testcase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51992 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-05 08:57:20 +00:00
Matthijs Kooijman
257da0a7fc
Let StructRetPromotion check if it's users are really calling it and not
...
passing its pointer. Fixes test with added testcase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51991 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-05 08:48:32 +00:00
Matthijs Kooijman
41335411a8
Use use_iterator::getOperandNo instead of CallSite::hasArgument to check if a
...
function is passed as an argument instead of called. Also do this check a bit
earlier.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51990 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-05 08:34:25 +00:00
Matthijs Kooijman
045b3f7bf1
* Make CallSite::hasArgument const and let it take a const parameter.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51989 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-05 08:04:58 +00:00
Chris Lattner
77d29b1f62
more updates and random notes, including changes up through Week-of-Mon-20080324.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51988 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-05 08:02:49 +00:00
Matthijs Kooijman
845f524c25
Update comments and documentation to reflect that GCSE and ValueNumbering are
...
deprecated by the GVN and GVNPRE passes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51983 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-05 07:55:49 +00:00