Jim Grosbach
bf2956a88b
enable iv-users simplification by default
...
llvm-svn: 89713
2009-11-23 23:25:54 +00:00
Ted Kremenek
b0c0b08c71
After performing a bounds check in ArrayBoundChecker, record the fact that a bounds check succeeded by transitioning the ExplodedGraph.
...
llvm-svn: 89712
2009-11-23 23:23:26 +00:00
Dan Gohman
de5dea869f
Remove ISD::DEBUG_LOC and ISD::DBG_LABEL, which are no longer used.
...
Note that "hasDotLocAndDotFile"-style debug info was already broken;
people wanting this functionality should implement it in the
AsmPrinter/DwarfWriter code.
llvm-svn: 89711
2009-11-23 23:20:51 +00:00
Jeffrey Yasskin
19b48370fb
Allow more than one stub to be being generated at the same time.
...
It's probably better in the long run to replace the
indirect-GlobalVariable system. That'll be done after a subsequent
patch.
llvm-svn: 89708
2009-11-23 22:49:00 +00:00
Ted Kremenek
f57351570e
Clean up the Checker API a little more, resolving some hidden bugs
...
along the way. Important changes:
1) To generate a sink node, use GenerateSink(); GenerateNode() is for
generating regular transitions. This makes the API clearer and also
allows us to use the 'bool' option to GenerateNode() for a different
purpose.
2) GenerateNode() now automatically adds the generated node to the
destination ExplodedNodeSet (autotransition) unless the client
specifies otherwise with a bool flag. Several checkers did not call
'addTransition()' after calling 'GenerateNode()', causing the
simulation path to be prematurely culled when a non-fail stop bug was
encountered.
3) Add variants of GenerateNode()/GenerateSink() that take neither a
Stmt* or a GRState*; most callers of GenerateNode() just pass in the
same Stmt* as provided when the CheckerContext object is created; we
can just use that the majority of the time. This cleanup also allows
us to potentially coelesce the APIs for evaluating branches and
end-of-paths (which currently directly use builders).
4) addTransition() no longer needs to be called except for a few
cases. We now have a variant of addTransition() that takes a
GRState*; this allows one to propagate the updated state without
caring about generating a new node explicitly. This nicely cleaned up
a bunch of cases that called autoTransition() with a bunch of
conditional logic surround the call (that common logic has now been
swallowed up by addTransition() itself).
llvm-svn: 89707
2009-11-23 22:22:01 +00:00
Evan Cheng
738a97a1db
Massive refactoring of NEON instructions. Separate opcode from data size specifier suffix, move \t up stream to instruction format, and fix more 80 column violations.
...
This fixes the NEON asm printing so the "predicate" field is printed between the opcode and the data type suffix.
llvm-svn: 89706
2009-11-23 21:57:23 +00:00
Anders Carlsson
f2e4f72f03
Don't try to treat an enum constant as an lvalue.
...
llvm-svn: 89705
2009-11-23 21:56:41 +00:00
Anders Carlsson
2e7bc11f11
Convert the && and || operands to bool using standard conversions. Fixes PR5593.
...
llvm-svn: 89704
2009-11-23 21:47:44 +00:00
Dan Gohman
3650f4ed0c
Simplify this code.
...
llvm-svn: 89702
2009-11-23 21:30:55 +00:00
Dan Gohman
2e3f187cbd
Print the debug info line and column in MachineInstr::print even when there's
...
no filename. This situation is apparently fairly common right now.
llvm-svn: 89701
2009-11-23 21:29:08 +00:00
Jim Grosbach
dbb4140f37
move fconst[sd] to UAL. <rdar://7414913>
...
llvm-svn: 89700
2009-11-23 21:08:25 +00:00
Johnny Chen
b6528d3244
Partially revert r84730 by removing N2VDup from ARMInstrFormats.td and modifying
...
VDUPLND and VDUPLNQ to derive from N2V instead of N2VDup. VDUPLND and VDUPLNQ
now expect op19_18 and op17_16 as the first two args.
llvm-svn: 89699
2009-11-23 21:00:43 +00:00
Fariborz Jahanian
d25c219475
Fixe a crash in encoding of SEL type caused by recent changes.
...
llvm-svn: 89696
2009-11-23 20:40:50 +00:00
Jim Grosbach
50b293d65e
update test for 89694
...
llvm-svn: 89695
2009-11-23 20:39:53 +00:00
Jim Grosbach
04c0e76772
fold immediate of a + Const into the user as a subtract if it can fit as a negated two-part immediate.
...
llvm-svn: 89694
2009-11-23 20:35:53 +00:00
Johnny Chen
5ad7416260
Revert r84572 by removing N3VImm from ARMInstrFormats.td now that we can specify
...
{?,?,?,?} as op11_8 for VEXTd and VEXTq.
llvm-svn: 89693
2009-11-23 20:09:13 +00:00
Anders Carlsson
7fa434c2b8
Handle converting member pointers to bool.
...
llvm-svn: 89692
2009-11-23 20:04:44 +00:00
Fariborz Jahanian
3f21c159dc
Fix a recent regression probably caused by addition of altivec-style
...
type-casts in the parser.
llvm-svn: 89691
2009-11-23 19:51:43 +00:00
Devang Patel
75e6a40d6d
Add CreateLocation varinat that accepts MDNode (with a default value).
...
llvm-svn: 89689
2009-11-23 19:11:20 +00:00
Ted Kremenek
b43737387b
Provide out-of-line definition for destructor of Checker.
...
llvm-svn: 89688
2009-11-23 18:53:03 +00:00
Devang Patel
b5b51598ba
Revert r89487.
...
llvm-svn: 89686
2009-11-23 18:43:37 +00:00
Johnny Chen
e97457afbc
Partially revert r89377 by removing NLdStLN class definition from
...
ARMInstrFormats.td and fixing VLD[234]LN* and VST[234]LN* to derive from NLdSt
instead of NLdStLN.
llvm-svn: 89684
2009-11-23 18:16:16 +00:00
Dan Gohman
9d72cbf2d5
Move CopyCatchInfo into FunctionLoweringInfo.cpp too, for consistency.
...
llvm-svn: 89683
2009-11-23 18:12:11 +00:00
Ted Kremenek
02d6aca867
Tweak UndefBranchChecker to register the most nested "undefined" expression with bugreporter::registerTrackNullOrUndefValue instead of the condition itself.
...
llvm-svn: 89682
2009-11-23 18:12:03 +00:00
Dan Gohman
1a6c47f1cb
Rename SelectionDAGLowering to SelectionDAGBuilder, and rename
...
SelectionDAGBuild.cpp to SelectionDAGBuilder.cpp.
llvm-svn: 89681
2009-11-23 18:04:58 +00:00
Fariborz Jahanian
0afc555196
Make 'SEL' pointer to a builtin type and not an
...
objective-c pointer type. This was a serious mishap and
luckily, Ted's test caught that (and patch fixes the test case).
llvm-svn: 89680
2009-11-23 18:04:25 +00:00
Ted Kremenek
d4dca6fde6
Cleanup title/description of "undefined branch" BugType and add some test cases for this check.
...
llvm-svn: 89679
2009-11-23 17:58:48 +00:00
Anders Carlsson
8c793172c2
Handle base-to-derived casts. Will land test case shortly.
...
llvm-svn: 89678
2009-11-23 17:57:54 +00:00
John Thompson
d976d3e552
Put back hard-coded paths for win32 until I figure out what happened to failed tests.
...
llvm-svn: 89677
2009-11-23 17:49:27 +00:00
Johnny Chen
ebc60ef80c
Make it clear that the index bit(s) of Vector Get Lane and Vector Set Lane
...
should be left unspecified now that Bob Wilson has fixed pr5470.
llvm-svn: 89676
2009-11-23 17:48:17 +00:00
Dan Gohman
91aad4b834
Move RegsForValue to an anonymous namespace, since it is only used
...
in this file.
llvm-svn: 89675
2009-11-23 17:46:23 +00:00
Dan Gohman
ad97b3dbd0
Move some more code out of SelectionDAGBuild.cpp and into
...
FunctionLoweringInfo.cpp.
llvm-svn: 89674
2009-11-23 17:42:46 +00:00
Ted Kremenek
4d1907c493
Remove '-checker-simple' reference from scan-build. Patch by Kovarththanan Rajaratnam!
...
llvm-svn: 89673
2009-11-23 17:37:58 +00:00
David Goodwin
1f2457f8aa
Minor itinerary fixes for FP instructions.
...
llvm-svn: 89672
2009-11-23 17:34:12 +00:00
Ted Kremenek
9b6515794f
Update CMake file.
...
llvm-svn: 89671
2009-11-23 17:26:04 +00:00
Sebastian Redl
22e2e5c423
Intercept sizeof and alignof references before they get into ASTContext methods. This fixes a crash when writing sizeof(Incomplete&), and lets ASTContext's methods do the right thing for CodeGen, which fixes PR5590.
...
llvm-svn: 89668
2009-11-23 17:18:46 +00:00
Dan Gohman
a3624b6099
Move the FunctionLoweringInfo class and some related utility functions out
...
of SelectionDAGBuild.h/cpp into its own files, to help separate
general lowering logic from SelectionDAG-specific lowering logic.
llvm-svn: 89667
2009-11-23 17:16:22 +00:00
Chris Lattner
214ef9a4ef
fix comment, thanks all :)
...
llvm-svn: 89666
2009-11-23 17:07:35 +00:00
Chris Lattner
1e7b37ebba
use the new isNoAlias method to simplify some code, only do an escaping check if
...
we have a non-constant pointer. Constant pointers can't be local.
llvm-svn: 89665
2009-11-23 16:46:41 +00:00
Chris Lattner
98e25326a0
whitespace cleanup, tidying
...
llvm-svn: 89664
2009-11-23 16:45:27 +00:00
Chris Lattner
84ed59abcf
speed up BasicAA a bit by implementing a long-standing TODO.
...
llvm-svn: 89663
2009-11-23 16:44:43 +00:00
Chris Lattner
f2fa7bf0b7
add a helper
...
llvm-svn: 89662
2009-11-23 16:38:54 +00:00
Rafael Espindola
962e518da2
Reorder the header search a bit so that it matches gcc exactly:
...
*) the ../backward dir is the last in libstdc++ to be searched
*) If compiling c++, the c++ headers are searched first
llvm-svn: 89661
2009-11-23 16:31:19 +00:00
Dan Gohman
05ebc8f71f
Move FunctionPassManagerImpl's dumpArguments and dumpPasses calls
...
out of its run function and into its doInitialization method, so
that it does the dump once instead of once per function.
llvm-svn: 89660
2009-11-23 16:24:18 +00:00
Dan Gohman
580b80d6d9
Make ConstantFoldConstantExpression recursively visit the entire
...
ConstantExpr, not just the top-level operator. This allows it to
fold many more constants.
Also, make GlobalOpt call ConstantFoldConstantExpression on
GlobalVariable initializers.
llvm-svn: 89659
2009-11-23 16:22:21 +00:00
Dan Gohman
1f522d98f8
Fix a use of an invalidated iterator in the case where there are multiple
...
adjacent uses of a dead basic block from the same user. This fixes PR5596.
llvm-svn: 89658
2009-11-23 16:13:39 +00:00
Sebastian Redl
a6602e9e2a
Let using directives refer to namespace aliases. Fixes PR5479.
...
llvm-svn: 89657
2009-11-23 15:34:23 +00:00
Douglas Gregor
378e1923b6
Require a class type to be complete before probing its conversion
...
functions for a switch condition's conversion to integral or
enumeration type.
llvm-svn: 89656
2009-11-23 13:53:21 +00:00
Douglas Gregor
d0c22e0d10
Implement conversion from a switch condition with class type to an
...
integral or enumeration type (vi user-defined conversions). Fixes PR5518.
llvm-svn: 89655
2009-11-23 13:46:08 +00:00
Douglas Gregor
bd866c2985
Canonical template arguments that are template template parameters by
...
their template parameter depth and position, so that we can match
redeclarations appropriately. Fixes PR5527 and PR5528.
llvm-svn: 89654
2009-11-23 12:52:47 +00:00