Commit Graph

39221 Commits

Author SHA1 Message Date
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
Bill Wendling
67944fc427 Cast because I think I know what I'm doing. There are warnings about converting
from 64-bit to 32-bit.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51982 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-05 07:35:27 +00:00
Matthijs Kooijman
cfd5b7d18b Fix 80 column violations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51981 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-05 07:26:15 +00:00
Bill Wendling
12c846f5d2 Remove unused parameter. Some clients might use -Werror when compiling and
cause drama.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51980 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-05 07:24:08 +00:00
Chris Lattner
bc5786ba47 add llvmc2 notes, stack realignment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51979 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-05 06:57:39 +00:00
Chris Lattner
5733b2743c various status updates.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51978 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-05 06:35:40 +00:00
Chris Lattner
791f77b2d4 Start adding 2.3 content.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51977 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-05 06:25:56 +00:00
Evan Cheng
fb4db316d8 Fix a memcpy lowering bug. Even though the memcpy alignment is smaller than the desired alignment, the frame destination alignment may still be larger than the desired alignment. Don't change its alignment to something smaller.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51970 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-04 23:37:54 +00:00
Owen Anderson
10a05bfff0 Remove unneeded #include.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51955 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-04 18:28:10 +00:00
Chris Lattner
da021aa410 Fix inst_iterator example.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51954 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-04 18:20:42 +00:00
Evan Cheng
75bb734f1d Oops. Should not be enabled by default.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51953 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-04 18:09:20 +00:00
Chris Lattner
67f631dfd5 Rewrite a bunch of the CBE's inline asm code, giving it the
ability to handle indirect input operands.  This fixes PR2407.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51952 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-04 18:03:28 +00:00
Owen Anderson
38b425020b Correctly construct live intervals for the copies we inserted into the predecessors of a block containing a PHI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51950 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-04 17:55:58 +00:00
Evan Cheng
7a315e865a Revert this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51949 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-04 17:21:44 +00:00
Matthijs Kooijman
227c27dd06 Replace two manual loops with calls to CallSite::hasArguments (no functional changes).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51947 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-04 16:57:50 +00:00
Matthijs Kooijman
9515a8f88a Add CallSite::hasArgument to allow for seeing if a call passes a certain value as an argument quickly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51946 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-04 16:31:12 +00:00
Matthijs Kooijman
338169ddc9 Add a Name parameter to two of the init methods of GetElementPointer to make the name setting more consistent.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51945 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-04 16:14:12 +00:00
Matthijs Kooijman
61399af13f Fix example to be valid LLVM assembly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51942 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-04 15:46:35 +00:00
Matthijs Kooijman
444099f615 Implement the two constructors in InsertValueInst and ExtractValueInst.
Add a Name argment to two init methods in these classes as well to make things
a bit more consistent.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51937 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-04 14:40:55 +00:00
Evan Cheng
3f32d65912 Add a stack slot coloring pass. Not yet enabled.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51934 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-04 09:18:41 +00:00
Evan Cheng
d8a46e3a74 LowerSubregs should not clobber any analysis.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51933 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-04 09:17:16 +00:00
Evan Cheng
cb74266cdb Move #include to right place.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51932 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-04 09:16:33 +00:00
Evan Cheng
b3dd264f9d Register if-converter pass for -debug-pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51931 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-04 09:15:51 +00:00
Evan Cheng
7c9b65207e More pass manager debugging outputs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51930 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-04 09:13:31 +00:00
Duncan Sands
a0fcc08e65 Change packed struct layout so that field sizes
are the same as in unpacked structs, only field
positions differ.  This only matters for structs
containing x86 long double or an apint; it may
cause backwards compatibility problems if someone
has bitcode containing a packed struct with a
field of one of those types.
The issue is that only 10 bytes are needed to
hold an x86 long double: the store size is 10
bytes, but the ABI size is 12 or 16 bytes (linux/
darwin) which comes from rounding the store size
up by the alignment.  Because it seemed silly not
to pack an x86 long double into 10 bytes in a
packed struct, this is what was done.  I now
think this was a mistake.  Reserving the ABI size
for an x86 long double field even in a packed
struct makes things more uniform: the ABI size is
now always used when reserving space for a type.
This means that developers are less likely to
make mistakes.  It also makes life easier for the
CBE which otherwise could not represent all LLVM
packed structs (PR2402).
Front-end people might need to adjust the way
they create LLVM structs - see following change
to llvm-gcc.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51928 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-04 08:21:45 +00:00