Commit Graph

52149 Commits

Author SHA1 Message Date
Nick Lewycky 7e82055e88 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.

llvm-svn: 61552
2009-01-02 03:46:56 +00:00
Bill Wendling ea58ff5a8a Don't error out if ranlib fails.
llvm-svn: 61551
2009-01-02 02:53:24 +00:00
Chris Lattner 836dd95506 rename a file to follow naming conventions.
llvm-svn: 61550
2009-01-02 01:52:35 +00:00
Duncan Sands 8c03a123ce Add tests for two types of traps that escape analysis
might one day fall into.

llvm-svn: 61549
2009-01-02 00:55:51 +00:00
Duncan Sands 1f11d2bbc1 Mention that this pass does escape analysis in the
leading comments.

llvm-svn: 61548
2009-01-01 20:45:19 +00:00
Duncan Sands 953c9c2fbc Factorize (and generalize) the code promoting SELECT
and BRCOND conditions.  Reorder a few methods while
there.

llvm-svn: 61547
2009-01-01 20:36:20 +00:00
Misha Brukman 36daf0d1c7 * Quoted the executable 'runtest' to emphasize the binary needed;
otherwise, some unlucky souls start looking for a 'dejagnu' binary...
* Properly capitalized LLVM.

llvm-svn: 61546
2009-01-01 20:26:05 +00:00
Duncan Sands 19ee60848a Remove trailing spaces.
llvm-svn: 61545
2009-01-01 19:56:02 +00:00
Duncan Sands 8feb694e8f 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).

llvm-svn: 61542
2009-01-01 15:52:00 +00:00
Misha Brukman bcf15388ab 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

llvm-svn: 61541
2009-01-01 02:24:48 +00:00
Misha Brukman 22df200727 * 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

llvm-svn: 61540
2009-01-01 02:05:43 +00:00
Misha Brukman 922e34993a 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).

llvm-svn: 61539
2009-01-01 01:29:44 +00:00
Bill Wendling 0fcff2c203 Fix comment.
llvm-svn: 61538
2009-01-01 01:19:59 +00:00
Bill Wendling aedb54a947 Add transformation:
xor (or (icmp, icmp), true) -> and(icmp, icmp)

This is possible because of De Morgan's law.

llvm-svn: 61537
2009-01-01 01:18:23 +00:00
Bill Wendling 4f8b265825 Some compilers are picky about accessing the first element of a std::vector if
there's nothing in the vector. Pacify them.

llvm-svn: 61536
2009-01-01 01:14:31 +00:00
Duncan Sands 163848021b Look through phi nodes and select instructions when
calculating nocapture attributes.

llvm-svn: 61535
2008-12-31 20:21:34 +00:00
Bill Wendling be504e82bc Rename AddReadAttrs to FunctionAttrs. This is related to Duncan's patch r61525.
llvm-svn: 61534
2008-12-31 19:51:31 +00:00
Bill Wendling 15a47ddf40 This is not failing on Darwin for some reason. XFAIL for other platforms.
llvm-svn: 61533
2008-12-31 19:26:09 +00:00
Duncan Sands df128eb477 Don't analyze arguments already marked 'nocapture'.
llvm-svn: 61532
2008-12-31 18:08:59 +00:00
Misha Brukman 5347fb20ad Fixed grammar and capitalization.
llvm-svn: 61531
2008-12-31 17:44:36 +00:00
Misha Brukman b132910b8f Add spacing between type and variable name.
llvm-svn: 61530
2008-12-31 17:41:49 +00:00
Misha Brukman 93b7c4085b Comment headers should extend to 80 chars.
llvm-svn: 61529
2008-12-31 17:40:52 +00:00
Misha Brukman d07751e5d8 Fix spacing to be uniform for parameters.
llvm-svn: 61528
2008-12-31 17:39:58 +00:00
Misha Brukman bbfefd9612 Removed extra spaces.
llvm-svn: 61527
2008-12-31 17:38:27 +00:00
Misha Brukman c89aba332f 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.

llvm-svn: 61526
2008-12-31 17:34:06 +00:00
Duncan Sands 44c8cd97a5 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'.

llvm-svn: 61525
2008-12-31 16:14:43 +00:00
Oscar Fuentes 2cc3ce0002 CMake: Added some VC++ specific info to CMake.html.
llvm-svn: 61521
2008-12-31 14:36:41 +00:00
Chris Lattner 9dd5e9e4ae Add a new Attribute::getAlignmentFromAttrs method.
llvm-svn: 61517
2008-12-31 08:41:38 +00:00
Bill Wendling 80cb99575e XFAIL test caused by r61493. Apparently, this is expected?
llvm-svn: 61516
2008-12-31 08:26:55 +00:00
Anders Carlsson 37e0088610 Perform default function/array conversion for input arguments to inline asm statements if the input expr can be a memory operand
llvm-svn: 61515
2008-12-31 07:27:38 +00:00
Owen Anderson 8b86b9ca47 Get live interval reconstruction several steps closer to working.
llvm-svn: 61514
2008-12-31 02:00:25 +00:00
Chris Lattner a41422566b add a note
llvm-svn: 61513
2008-12-31 00:54:13 +00:00
Scott Michel 36a494c1d1 XFAIL this for now until I can figure out what's going on.
llvm-svn: 61512
2008-12-31 00:08:25 +00:00
Scott Michel 18d756a411 Fix test erratum (which is wierd: works locally for me?)
llvm-svn: 61511
2008-12-30 23:52:05 +00:00
Scott Michel 41236c0cf3 - 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.

llvm-svn: 61508
2008-12-30 23:28:25 +00:00
Douglas Gregor d7c4d984d0 Parser support for C++ using directives, from Piotr Rak
llvm-svn: 61486
2008-12-30 03:27:21 +00:00
Bill Wendling 03f2af79b8 Linux wants the FDE initial location and address range to be forced to 32-bit.
Darwin doesn't. Make this optional for platforms.

llvm-svn: 61484
2008-12-29 22:12:11 +00:00
Bill Wendling b13c83ac18 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.

llvm-svn: 61483
2008-12-29 21:51:42 +00:00
Misha Brukman fd60966b91 * Updated TOC and fixed named anchors
* Simplified section header marking 

llvm-svn: 61482
2008-12-29 21:33:30 +00:00
Misha Brukman 26f7289a07 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.

llvm-svn: 61481
2008-12-29 21:25:09 +00:00
Misha Brukman 8dab303dc9 Simplified marking code regions with a single <pre> rather than
a (<div>, <pre>) combo.

llvm-svn: 61480
2008-12-29 21:20:51 +00:00
Duncan Sands e59fa78979 Make stripPointerCasts and getUnderlyingObject
non-recursive.

llvm-svn: 61479
2008-12-29 21:06:19 +00:00
Duncan Sands f6069577fa 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.

llvm-svn: 61478
2008-12-29 20:51:17 +00:00
Misha Brukman a27b796fec Fixed spelling, removed trailing whitespace.
llvm-svn: 61477
2008-12-29 20:08:23 +00:00
Fariborz Jahanian 408035072b Remove hasKind(). Use existing getKind().
llvm-svn: 61476
2008-12-29 19:57:17 +00:00
Misha Brukman ca3a84bf76 Center the legal note to give it even padding on left and right, and make it
stand out better.

llvm-svn: 61475
2008-12-29 19:55:01 +00:00
Misha Brukman 4050d152d9 Cleanup: clarify llvm-gcc version and package name.
llvm-svn: 61474
2008-12-29 19:38:58 +00:00
Duncan Sands 660b053fac Clarify a bit. Based on feedback by Talin.
llvm-svn: 61470
2008-12-29 15:27:32 +00:00
Duncan Sands c125d6a3d3 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

llvm-svn: 61469
2008-12-29 11:34:09 +00:00
Duncan Sands 43b18241ff Add braces, as suggested by a gcc warning.
llvm-svn: 61465
2008-12-29 08:05:02 +00:00