Nick Lewycky [Fri, 2 Jan 2009 05:01:22 +0000 (05:01 +0000)]
Fix typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61554
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Fri, 2 Jan 2009 03:52:27 +0000 (03:52 +0000)]
Remove the cyclic part of this test, it was passing for the wrong
reason. Two functions which mutually require each other to be nocapture
are not currently supported.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61553
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Fri, 2 Jan 2009 03:46:56 +0000 (03:46 +0000)]
Make adding nocapture a bit stronger. FreeInst is nocapture. Also,
functions that don't write can't leak a pointer except through
the return value, so a void readonly function is implicitly nocapture.
Test these, and add a test that verifies that f1 calling f2 with an
otherwise dead pointer gets both of them marked nocapture.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61552
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 2 Jan 2009 02:53:24 +0000 (02:53 +0000)]
Don't error out if ranlib fails.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61551
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 2 Jan 2009 01:52:35 +0000 (01:52 +0000)]
rename a file to follow naming conventions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61550
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Fri, 2 Jan 2009 00:55:51 +0000 (00:55 +0000)]
Add tests for two types of traps that escape analysis
might one day fall into.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61549
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Thu, 1 Jan 2009 20:45:19 +0000 (20:45 +0000)]
Mention that this pass does escape analysis in the
leading comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61548
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Thu, 1 Jan 2009 20:36:20 +0000 (20:36 +0000)]
Factorize (and generalize) the code promoting SELECT
and BRCOND conditions. Reorder a few methods while
there.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61547
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Thu, 1 Jan 2009 20:26:05 +0000 (20:26 +0000)]
* Quoted the executable 'runtest' to emphasize the binary needed;
otherwise, some unlucky souls start looking for a 'dejagnu' binary...
* Properly capitalized LLVM.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61546
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Thu, 1 Jan 2009 19:56:02 +0000 (19:56 +0000)]
Remove trailing spaces.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61545
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Thu, 1 Jan 2009 15:52:00 +0000 (15:52 +0000)]
Fix PR3274: when promoting the condition of a BRCOND node,
promote from i1 all the way up to the canonical SetCC type.
In order to discover an appropriate type to use, pass
MVT::Other to getSetCCResultType. In order to be able to
do this, change getSetCCResultType to take a type as an
argument, not a value (this is also more logical).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61542
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Thu, 1 Jan 2009 02:24:48 +0000 (02:24 +0000)]
Original patch by Talin.
* Added the first LLVM unittest -- DenseMap.
* Updated mkpatch utility to include llvm/unittests dir
* Added top-level target "unittests" to run all unittests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61541
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Thu, 1 Jan 2009 02:05:43 +0000 (02:05 +0000)]
* Removed gtest-all.cc; .cc files including other .cc files is weird
* Removed gtest_main.cc: we have our own main() elsewhere
* Simplified the Makefile as we don't need SOURCES
* Moved the internal header to gtest/internal/
* Simplified the Makefile to remove -I param to CPP.Flags
* Updated README.LLVM with all the steps I took to massage GTest to
work in LLVM so far
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61540
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Thu, 1 Jan 2009 01:29:44 +0000 (01:29 +0000)]
Moved Google Test code up one directory so that we can use a standard LLVM
Makefile with it, without resorting to the use of VPATH.
Also added Makefiles at every level of the directory tree to properly recurse
to Google Test and build it as a library (original Makefiles by Talin).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61539
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 1 Jan 2009 01:19:59 +0000 (01:19 +0000)]
Fix comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61538
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 1 Jan 2009 01:18:23 +0000 (01:18 +0000)]
Add transformation:
xor (or (icmp, icmp), true) -> and(icmp, icmp)
This is possible because of De Morgan's law.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61537
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 1 Jan 2009 01:14:31 +0000 (01:14 +0000)]
Some compilers are picky about accessing the first element of a std::vector if
there's nothing in the vector. Pacify them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61536
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 31 Dec 2008 20:21:34 +0000 (20:21 +0000)]
Look through phi nodes and select instructions when
calculating nocapture attributes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61535
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 31 Dec 2008 19:26:09 +0000 (19:26 +0000)]
This is not failing on Darwin for some reason. XFAIL for other platforms.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61533
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 31 Dec 2008 18:08:59 +0000 (18:08 +0000)]
Don't analyze arguments already marked 'nocapture'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61532
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Wed, 31 Dec 2008 17:44:36 +0000 (17:44 +0000)]
Fixed grammar and capitalization.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61531
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Wed, 31 Dec 2008 17:41:49 +0000 (17:41 +0000)]
Add spacing between type and variable name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61530
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Wed, 31 Dec 2008 17:40:52 +0000 (17:40 +0000)]
Comment headers should extend to 80 chars.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61529
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Wed, 31 Dec 2008 17:39:58 +0000 (17:39 +0000)]
Fix spacing to be uniform for parameters.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61528
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Wed, 31 Dec 2008 17:38:27 +0000 (17:38 +0000)]
Removed extra spaces.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61527
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Wed, 31 Dec 2008 17:34:06 +0000 (17:34 +0000)]
Import of Google Test 1.2.1, with the non-essential bits removed.
Added a README.LLVM file to indicate which files and directories
were removed from the original source tarball.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61526
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 31 Dec 2008 16:14:43 +0000 (16:14 +0000)]
Rename AddReadAttrs to FunctionAttrs, and teach it how
to work out (in a very simplistic way) which function
arguments (pointer arguments only) are only dereferenced
and so do not escape. Mark such arguments 'nocapture'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61525
91177308-0d34-0410-b5e6-
96231b3b80d8
Oscar Fuentes [Wed, 31 Dec 2008 14:36:41 +0000 (14:36 +0000)]
CMake: Added some VC++ specific info to CMake.html.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61521
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 31 Dec 2008 08:41:38 +0000 (08:41 +0000)]
Add a new Attribute::getAlignmentFromAttrs method.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61517
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 31 Dec 2008 08:26:55 +0000 (08:26 +0000)]
XFAIL test caused by r61493. Apparently, this is expected?
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61516
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 31 Dec 2008 02:00:25 +0000 (02:00 +0000)]
Get live interval reconstruction several steps closer to working.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61514
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 31 Dec 2008 00:54:13 +0000 (00:54 +0000)]
add a note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61513
91177308-0d34-0410-b5e6-
96231b3b80d8
Scott Michel [Wed, 31 Dec 2008 00:08:25 +0000 (00:08 +0000)]
XFAIL this for now until I can figure out what's going on.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61512
91177308-0d34-0410-b5e6-
96231b3b80d8
Scott Michel [Tue, 30 Dec 2008 23:52:05 +0000 (23:52 +0000)]
Fix test erratum (which is wierd: works locally for me?)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61511
91177308-0d34-0410-b5e6-
96231b3b80d8
Scott Michel [Tue, 30 Dec 2008 23:28:25 +0000 (23:28 +0000)]
- Start moving target-dependent nodes that could be represented by an
instruction sequence and cannot ordinarily be simplified by DAGcombine
into the various target description files or SPUDAGToDAGISel.cpp.
This makes some 64-bit operations legal.
- Eliminate target-dependent ISD enums.
- Update tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61508
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 29 Dec 2008 22:12:11 +0000 (22:12 +0000)]
Linux wants the FDE initial location and address range to be forced to 32-bit.
Darwin doesn't. Make this optional for platforms.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61484
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 29 Dec 2008 21:51:42 +0000 (21:51 +0000)]
The FDE initial location and address range data should be free to be 64-bit
(quad) on a 64-bit platform. This fixes a problem with EH frames on Darwin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61483
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Mon, 29 Dec 2008 21:33:30 +0000 (21:33 +0000)]
* Updated TOC and fixed named anchors
* Simplified section header marking
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61482
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Mon, 29 Dec 2008 21:25:09 +0000 (21:25 +0000)]
Minimize the width of the notes region: it will end where the text ends, if the
line of text is short enough, instead of stretching all the way to the right
margin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61481
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Mon, 29 Dec 2008 21:20:51 +0000 (21:20 +0000)]
Simplified marking code regions with a single <pre> rather than
a (<div>, <pre>) combo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61480
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Mon, 29 Dec 2008 21:06:19 +0000 (21:06 +0000)]
Make stripPointerCasts and getUnderlyingObject
non-recursive.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61479
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Mon, 29 Dec 2008 20:51:17 +0000 (20:51 +0000)]
Experiments show that looking through phi nodes
and select instructions doesn't buy anything here
except extra complexity: the only difference in
the entire testsuite was that a readonly function
became readnone in MiBench/consumer-typeset. Add
a comment about this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61478
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Mon, 29 Dec 2008 20:08:23 +0000 (20:08 +0000)]
Fixed spelling, removed trailing whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61477
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Mon, 29 Dec 2008 19:55:01 +0000 (19:55 +0000)]
Center the legal note to give it even padding on left and right, and make it
stand out better.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61475
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Mon, 29 Dec 2008 19:38:58 +0000 (19:38 +0000)]
Cleanup: clarify llvm-gcc version and package name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61474
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Mon, 29 Dec 2008 15:27:32 +0000 (15:27 +0000)]
Clarify a bit. Based on feedback by Talin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61470
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Mon, 29 Dec 2008 11:34:09 +0000 (11:34 +0000)]
Allow readnone functions to read (and write!) global
constants, since doing so is irrelevant for aliasing
purposes. While this doesn't increase the total number
of functions marked readonly or readnone in MultiSource/
Applications (3089), it does result in 12 functions being
marked readnone rather than readonly.
Before:
readnone: 820
readonly: 2269
After:
readnone: 832
readonly: 2257
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61469
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Mon, 29 Dec 2008 08:05:02 +0000 (08:05 +0000)]
Add braces, as suggested by a gcc warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61465
91177308-0d34-0410-b5e6-
96231b3b80d8
Scott Michel [Mon, 29 Dec 2008 03:23:36 +0000 (03:23 +0000)]
- Various '#if 0' cleanups.
- Move v4i32, i32 mul into SPUInstrInfo.td, with a few more instruction
cleanups there as well.
- Make SMUL_LOHI, UMUL_LOHI competely illegal for Cell SPU, to better
assist Chris to see the problem in bug 3101.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61464
91177308-0d34-0410-b5e6-
96231b3b80d8
Scott Michel [Mon, 29 Dec 2008 03:21:37 +0000 (03:21 +0000)]
Teach LeaglizeDAG that i64 mul can be a libcall.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61463
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 29 Dec 2008 00:16:12 +0000 (00:16 +0000)]
select constant exprs should have the same constraints as select instructions,
notably, they should support vectors and aggregates.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61462
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 29 Dec 2008 00:12:50 +0000 (00:12 +0000)]
move select validation logic into a shared place where the select ctor,
verifier, asm parser, etc can share it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61461
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Sun, 28 Dec 2008 23:35:13 +0000 (23:35 +0000)]
Fix up kill/dead marking in the new live interval reconstruction code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61460
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Sun, 28 Dec 2008 21:57:02 +0000 (21:57 +0000)]
Forgot to commit this file.
Add a clear() method to remove all ranges and value numbers for a live interval.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61459
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Sun, 28 Dec 2008 21:48:48 +0000 (21:48 +0000)]
Add prototype code for recomputing a live interval's ranges and valnos through recursive phi construction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61458
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sat, 27 Dec 2008 16:20:53 +0000 (16:20 +0000)]
Check that the function prototypes are correct before assuming that the
parameters are pointers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61451
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 27 Dec 2008 08:10:46 +0000 (08:10 +0000)]
add testcase for type parsing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61449
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 27 Dec 2008 07:47:40 +0000 (07:47 +0000)]
implement simplify_type for PATypeHolder so that isa<FooType>(PATypeHolder)
works.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61448
91177308-0d34-0410-b5e6-
96231b3b80d8
Scott Michel [Sat, 27 Dec 2008 04:51:36 +0000 (04:51 +0000)]
- Remove Tilmann's custom truncate lowering: it completely hosed over
DAGcombine's ability to find reasons to remove truncates when they were not
needed. Consequently, the CellSPU backend would produce correct, but _really
slow and horrible_, code.
Replaced with instruction sequences that do the equivalent truncation in
SPUInstrInfo.td.
- Re-examine how unaligned loads and stores work. Generated unaligned
load code has been tested on the CellSPU hardware; see the i32operations.c
and i64operations.c in CodeGen/CellSPU/useful-harnesses. (While they may be
toy test code, it does prove that some real world code does compile
correctly.)
- Fix truncating stores in bug 3193 (note: unpack_df.ll will still make llc
fault because i64 ult is not yet implemented.)
- Added i64 eq and neq for setcc and select/setcc; started new instruction
information file for them in SPU64InstrInfo.td. Additional i64 operations
should be added to this file and not to SPUInstrInfo.td.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61447
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 25 Dec 2008 05:40:38 +0000 (05:40 +0000)]
add PR #
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61427
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 25 Dec 2008 05:34:37 +0000 (05:34 +0000)]
Add a simple pattern for matching 'bt'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61426
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 25 Dec 2008 01:32:49 +0000 (01:32 +0000)]
Fix some JIT encodings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61425
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 25 Dec 2008 01:27:10 +0000 (01:27 +0000)]
BT memory operands load from their address operand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61424
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 24 Dec 2008 23:53:05 +0000 (23:53 +0000)]
translateX86CC can never fail. Simplify it based on this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61423
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 24 Dec 2008 08:05:17 +0000 (08:05 +0000)]
Darwin likes for the EH frame to be non-local.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61420
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 24 Dec 2008 05:25:49 +0000 (05:25 +0000)]
GCC doesn't emit DW_EH_PE_sdata4 for the FDE encoding on Darwin. I'm not sure
about other platforms.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61415
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 24 Dec 2008 05:23:34 +0000 (05:23 +0000)]
Revert the changes in this testcase until Anton can fix them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61414
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 24 Dec 2008 00:27:51 +0000 (00:27 +0000)]
Fix a compiler-abort on a testcase where the stack-pointer is added to
a symbolic constant. This is unlikely to be intentional, but it
shouldn't crash the compiler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61408
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 24 Dec 2008 00:11:37 +0000 (00:11 +0000)]
indentation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61407
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Tue, 23 Dec 2008 23:47:22 +0000 (23:47 +0000)]
Change comments so everybody can understand them, hopefully.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61405
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 23 Dec 2008 23:42:27 +0000 (23:42 +0000)]
simplify some control flow and reduce indentation, no functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61404
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Tue, 23 Dec 2008 23:21:35 +0000 (23:21 +0000)]
Revert 61362 and 61402 until SPEC breakage is fixed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61403
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Tue, 23 Dec 2008 23:05:26 +0000 (23:05 +0000)]
This fixes the bug in 175.vpr. It doesn't fix the
other SPEC breakage. I'll be reverting all recent
changes shortly, this checking is mostly so this
change doesn't get lost.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61402
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Tue, 23 Dec 2008 23:01:27 +0000 (23:01 +0000)]
Add another permutation where we should get rid of a-a.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61401
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 23 Dec 2008 22:45:23 +0000 (22:45 +0000)]
Add instruction patterns and encodings for the x86 bt instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61400
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Tue, 23 Dec 2008 22:26:37 +0000 (22:26 +0000)]
Update test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61399
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Tue, 23 Dec 2008 22:26:18 +0000 (22:26 +0000)]
Restore debug printing
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61398
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Tue, 23 Dec 2008 22:26:01 +0000 (22:26 +0000)]
Sometimes APInt syntax is really ugly... :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61397
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Tue, 23 Dec 2008 22:25:45 +0000 (22:25 +0000)]
Indent stuff properly
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61396
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Tue, 23 Dec 2008 22:25:27 +0000 (22:25 +0000)]
Initial checkin of APInt'ififcation of switch lowering
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61395
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 23 Dec 2008 21:56:28 +0000 (21:56 +0000)]
Silence unused variable warnings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61392
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 23 Dec 2008 21:55:38 +0000 (21:55 +0000)]
Fix typo.
Silence unused variable warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61391
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 23 Dec 2008 21:55:04 +0000 (21:55 +0000)]
Silience unused warnings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61390
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 23 Dec 2008 21:37:04 +0000 (21:37 +0000)]
Clean up the atomic opcodes in SelectionDAG.
This removes all the _8, _16, _32, and _64 opcodes and replaces each
group with an unsuffixed opcode. The MemoryVT field of the AtomicSDNode
is now used to carry the size information. In tablegen, the size-specific
opcodes are replaced by size-independent opcodes that utilize the
ability to compose them with predicates.
This shrinks the per-opcode tables and makes the code that handles
atomics much more concise.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61389
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 23 Dec 2008 20:52:52 +0000 (20:52 +0000)]
add some notes for simplifylibcalls optimizations
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61385
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 23 Dec 2008 18:52:26 +0000 (18:52 +0000)]
Testcase to show we can tie together integers and pointers of
the same size.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61380
91177308-0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Tue, 23 Dec 2008 18:41:47 +0000 (18:41 +0000)]
Tweak --version to include the date and time.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61378
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 23 Dec 2008 18:36:58 +0000 (18:36 +0000)]
Rename BuildSchedUnits to BuildSchedGraph, and refactor the
code in ScheduleDAGSDNodes' BuildSchedGraph into separate functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61376
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 23 Dec 2008 18:20:16 +0000 (18:20 +0000)]
Comment MO_FPImmediate and doxygenate surrounding comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61374
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 23 Dec 2008 17:28:50 +0000 (17:28 +0000)]
Use isTerminator() instead of isBranch()||isReturn() in
several places. isTerminator() returns true for a superset
of cases, and includes things like FP_REG_KILL, which are
nither return or branch but aren't safe to move/remat/etc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61373
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 23 Dec 2008 17:24:50 +0000 (17:24 +0000)]
Avoid an unnecessary call to allnodes_size(), which is linear.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61372
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 23 Dec 2008 17:22:32 +0000 (17:22 +0000)]
Minor code simplifications.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61371
91177308-0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Tue, 23 Dec 2008 05:43:56 +0000 (05:43 +0000)]
revert r61368.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61369
91177308-0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Tue, 23 Dec 2008 05:30:44 +0000 (05:30 +0000)]
Remove dead code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61368
91177308-0d34-0410-b5e6-
96231b3b80d8
Mon P Wang [Tue, 23 Dec 2008 04:05:08 +0000 (04:05 +0000)]
Added shuffle and splat test cases for r61365.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61366
91177308-0d34-0410-b5e6-
96231b3b80d8
Mon P Wang [Tue, 23 Dec 2008 04:03:27 +0000 (04:03 +0000)]
Fixed code generation for v8i16 and v16i8 splats on X86.
Fixed lowering of v8i16 shuffles for v8i16 when we fall back to extract/insert.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61365
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Tue, 23 Dec 2008 02:12:52 +0000 (02:12 +0000)]
Fix the time regression I introduced in 464.h264ref with
my last patch to this file.
The issue there was that all uses of an IV inside a loop
are actually references to Base[IV*2], and there was one
use outside that was the same but LSR didn't see the base
or the scaling because it didn't recurse into uses outside
the loop; thus, it used base+IV*scale mode inside the loop
instead of pulling base out of the loop. This was extra bad
because register pressure later forced both base and IV into
memory. Doing that recursion, at least enough
to figure out addressing modes, is a good idea in general;
the change in AddUsersIfInteresting does this. However,
there were side effects....
It is also possible for recursing outside the loop to
introduce another IV where there was only 1 before (if
the refs inside are not scaled and the ref outside is).
I don't think this is a common case, but it's in the testsuite.
It is right to be very aggressive about getting rid of
such introduced IVs (CheckForIVReuse and the handling of
nonzero RewriteFactor in StrengthReduceStridedIVUsers).
In the testcase in question the new IV produced this way
has both a nonconstant stride and a nonzero base, neither
of which was handled before. And when inserting
new code that feeds into a PHI, it's right to put such
code at the original location rather than in the PHI's
immediate predecessor(s) when the original location is outside
the loop (a case that couldn't happen before)
(RewriteInstructionToUseNewBase); better to avoid making
multiple copies of it in this case.
Also, the mechanism for keeping SCEV's corresponding to GEP's
no longer works, as the GEP might change after its SCEV
is remembered, invalidating the SCEV, and we might get a bad
SCEV value when looking up the GEP again for a later loop.
This also couldn't happen before, as we weren't recursing
into GEP's outside the loop.
I owe some testcases for this, want to get it in for nightly runs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61362
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Tue, 23 Dec 2008 01:59:54 +0000 (01:59 +0000)]
One more permutation of subtracting off a base value.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61361
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 23 Dec 2008 00:49:51 +0000 (00:49 +0000)]
Don't forget to remove phi nodes from the value numbering table after we collapse them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61358
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 23 Dec 2008 00:19:20 +0000 (00:19 +0000)]
Make the fuse-failed debug output human-readable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61356
91177308-0d34-0410-b5e6-
96231b3b80d8