Scott Michel
48072bf179
- Expand tabs to spaces.
...
- select_bits.ll now fully functional now that PR1993 is closed. It was
previously broken by refactoring in SPUInstrInfo.td and using multiclasses.
- Same for eqv.ll
llvm-svn: 47972
2008-03-05 23:00:19 +00:00
Ted Kremenek
4c38955dab
Added transfer function support for __builtin_expect.
...
llvm-svn: 47971
2008-03-05 22:59:42 +00:00
Ted Kremenek
9743b3913f
Small bug fix when handling CallExprs that generate sink nodes.
...
llvm-svn: 47970
2008-03-05 22:49:16 +00:00
Steve Naroff
1c703ef97f
Update vcproj file.
...
llvm-svn: 47969
2008-03-05 22:30:39 +00:00
Anton Korobeynikov
dac5fa94ef
Try hard to link aliases. Checks can be too strict by now.
...
llvm-svn: 47968
2008-03-05 22:22:46 +00:00
Steve Naroff
93bcc7a6d2
Update vcproj files.
...
llvm-svn: 47967
2008-03-05 22:16:33 +00:00
Evan Cheng
29b502e0e0
Fix a coalescer bug wrt how dead copy interval is shortened.
...
llvm-svn: 47966
2008-03-05 22:09:42 +00:00
Devang Patel
3b1c95f885
Handle 'ret' with multiple values.
...
llvm-svn: 47965
2008-03-05 21:50:24 +00:00
Ted Kremenek
7034236366
Fixed bug that could case unwanted bifurcation of states when evaluating calls.
...
llvm-svn: 47964
2008-03-05 21:15:02 +00:00
Andrew Lenharth
7fbece5d8a
test for something more interesting than not crashing
...
llvm-svn: 47962
2008-03-05 20:24:26 +00:00
Andrew Lenharth
04bd14db4d
sync ops on ptrs, was breaking libgomp
...
llvm-svn: 47960
2008-03-05 19:48:27 +00:00
Daniel Berlin
c3d98074a9
Add Hybrid Cycle Detection to Andersen's analysis.
...
Patch by Curtis Dunham.
llvm-svn: 47959
2008-03-05 19:31:47 +00:00
Ted Kremenek
0c04606d1f
Fixed bogus assumption mistakenly introduced in r47955.
...
llvm-svn: 47958
2008-03-05 19:26:46 +00:00
Dale Johannesen
8ee39c61f2
Clarify that CALLSEQ_START..END may not be nested,
...
and add some protection against creating such.
llvm-svn: 47957
2008-03-05 19:14:03 +00:00
Ted Kremenek
c156f1ffc6
Fixed a horribly insidious bit-masking bug in the implementation of
...
ExplodedNode that would occasionally result in heap corruption.
llvm-svn: 47956
2008-03-05 19:08:55 +00:00
Ted Kremenek
df4a5b9047
Minor cleanups (mainly indentation).
...
llvm-svn: 47955
2008-03-05 19:08:15 +00:00
Chris Lattner
37e0587839
remove the source location arguments to various target query methods.
...
llvm-svn: 47954
2008-03-05 18:54:05 +00:00
Chris Lattner
ae3429f5f1
add analysis source files to project.
...
llvm-svn: 47953
2008-03-05 18:22:36 +00:00
Chris Lattner
0e26639bb4
Add the various pathsensitive headers to the project.
...
llvm-svn: 47952
2008-03-05 18:20:02 +00:00
Chris Lattner
4cb0b08be7
ProgramEdge.h doesn't exist anymore.
...
llvm-svn: 47951
2008-03-05 18:18:31 +00:00
Scott Michel
944207423b
This patch fixes a problem encountered by the CellSPU backend where variants
...
were being pruned in patterns where a variable was used more than once, e.g.:
(or (and R32C:$rA, R32C:$rC), (and R32C:$rB, (not R32C:$rC)))
In this example, $rC is used more than once and is actually significant to
instruction selection pattern matching when commuted variants are produced.
This patch scans the pattern's clauses and collects the variables, creating
a set of variables that are used more than once. TreePatternNode::isIsomorphicTo()
also understands that multiply-used variables are significant.
llvm-svn: 47950
2008-03-05 17:49:05 +00:00
Chris Lattner
7c08a01698
evan implemented this.
...
llvm-svn: 47948
2008-03-05 17:11:51 +00:00
Anton Korobeynikov
6be42d2e23
Fix test not to emit junk into source directory
...
llvm-svn: 47947
2008-03-05 15:44:25 +00:00
Anton Korobeynikov
f8e03a9b3b
Testcase for PR2054
...
llvm-svn: 47946
2008-03-05 15:43:58 +00:00
Anton Korobeynikov
2e13597f9d
Remember the source->dest mapping when copying aliases. This fixes PR2054
...
llvm-svn: 47945
2008-03-05 15:27:21 +00:00
Anton Korobeynikov
12cee7195f
Clarify the state-of-the-art
...
llvm-svn: 47944
2008-03-05 15:11:00 +00:00
Bill Wendling
5ddd03d88b
Use AC_PATH_PROG correctly:
...
http://www.gnu.org/software/autoconf/manual/autoconf.html#Generic-Programs
llvm-svn: 47943
2008-03-05 09:28:02 +00:00
Evan Cheng
3ea44e4ee9
isTwoAddress = 1 -> Constraints.
...
llvm-svn: 47941
2008-03-05 08:19:16 +00:00
Evan Cheng
6ec7dc6bea
PSLLWri etc. are two-address instructions.
...
llvm-svn: 47940
2008-03-05 08:11:27 +00:00
Chris Lattner
2acd0c25f6
add a note
...
llvm-svn: 47939
2008-03-05 07:22:39 +00:00
Chris Lattner
78e9cab229
Generalize FP constant shrinking optimization to apply to any vt
...
except ppc long double. This allows us to shrink constant pool
entries for x86 long double constants, which in turn allows us to
use flds/fldl instead of fldt.
llvm-svn: 47938
2008-03-05 06:48:13 +00:00
Chris Lattner
3dc3899007
Improve comment, pass in the original VT so that we can shrink a long double constant
...
all the way to float, not stopping at double.
llvm-svn: 47937
2008-03-05 06:46:58 +00:00
Ted Kremenek
7ae17203f8
Reverted patch 47926 for ProgramPoint.h because it is currently buggy. May add back (fixed) later.
...
Updated CFGStmtVisitor to be in accord with rr47913: CallExprs are no longer (automatically) block-level expressions in the CFG.
llvm-svn: 47935
2008-03-05 05:05:04 +00:00
Evan Cheng
3bd59641ac
Ignore debugging related instructions if they get this far.
...
llvm-svn: 47934
2008-03-05 02:34:36 +00:00
Evan Cheng
801bfb2cf7
Rather than asserting. Dump out the MI that we are not able to encode and abort.
...
llvm-svn: 47933
2008-03-05 02:08:03 +00:00
Dan Gohman
da7897c4e1
Codegen support for i128 UINT_TO_FP. This just fixes a
...
bug in r47928 (Int64Ty is the correct type for the constant
pool entry here) and removes the asserts, now that the code
is capable of handling i128.
llvm-svn: 47932
2008-03-05 02:07:31 +00:00
Evan Cheng
0a62cb44ce
Add a target lowering hook to control whether it's worthwhile to compress fp constant.
...
For x86, if sse2 is available, it's not a good idea since cvtss2sd is slower than a movsd load and it prevents load folding. On x87, it's important to shrink fp constant since fldt is very expensive.
llvm-svn: 47931
2008-03-05 01:30:59 +00:00
Chris Lattner
855d024a83
Remove the first layer of support for "portability" warnings. This is
...
theoretically useful, but not useful in practice. It adds a bunch of
complexity, and not much value. It's best to nuke it. One big advantage
is that it means the target interfaces will soon lose their SLoc arguments
and target queries can never emit diagnostics anymore (yay). Removing this
also simplifies some of the core preprocessor which should make it slightly
faster.
Ted, I didn't simplify TripleProcessor, which can now have at most one
triple, and can probably just be removed. Please poke at it when you have
time.
llvm-svn: 47930
2008-03-05 01:18:20 +00:00
Andrew Lenharth
357061a74d
64bit CAS on 32bit x86.
...
llvm-svn: 47929
2008-03-05 01:15:49 +00:00
Dan Gohman
d9d874b0cd
Codegen support for i128 SINT_TO_FP.
...
llvm-svn: 47928
2008-03-05 01:08:17 +00:00
Evan Cheng
6325446666
Refactor code. Remove duplicated functions that basically do the same thing as
...
findRegisterUseOperandIdx, findRegisterDefOperandIndx. Fix some naming inconsistencies.
llvm-svn: 47927
2008-03-05 00:59:57 +00:00
Ted Kremenek
f9c67f6056
Added support for ProgramPoints to represent ExplodedNodes in another
...
ExplodedGraph. This allows us to build "layered" ExplodedGraphs where one
simulation is layered on another.
llvm-svn: 47926
2008-03-05 00:59:43 +00:00
Chris Lattner
43c103ab1b
move this into the right file.
...
llvm-svn: 47925
2008-03-05 00:53:34 +00:00
Devang Patel
e516aa1127
Skip functions that return multiple values.
...
llvm-svn: 47924
2008-03-05 00:36:59 +00:00
Ted Kremenek
d5804b31c4
Plug-in transfer function "EvalCall" now takes as an argument the current
...
GRStmtNodeBuilder and is now responsible for adding its own nodes to the graph.
llvm-svn: 47923
2008-03-05 00:33:14 +00:00
Devang Patel
b3ca38c1d5
Check struct return type first.
...
llvm-svn: 47922
2008-03-05 00:27:05 +00:00
Ted Kremenek
31672dbda3
Cleaned up typedefs involving StateTy so that we always use "StateTy*" instead of StateTy.
...
This is conceptually much cleaner, as it shows that the state is always a pointer.
It also makes it easier to marshall these values around across the internal APIs
of the path-sensitive engine.
llvm-svn: 47921
2008-03-05 00:11:33 +00:00
Ted Kremenek
c3c8c5762f
Make GRStmtNodeBuilder only depend on StateTy, and not the type definition
...
of the entire checker.
llvm-svn: 47920
2008-03-04 23:50:00 +00:00
Ted Kremenek
a81c9de767
Moved implementation of GRExprEngine::Nodify into GRStmtNodeBuilder. This will
...
allow us to pass the builder to plug-in transfer functions and allow those
functions to create intermediate nodes.
llvm-svn: 47919
2008-03-04 23:39:43 +00:00
Bill Wendling
3fcd946c26
Removed spurious EnablePPCRS check.
...
llvm-svn: 47918
2008-03-04 23:27:33 +00:00