]>
granicus.if.org Git - clang/log
Eli Friedman [Sat, 9 Feb 2008 08:50:58 +0000 (08:50 +0000)]
Expose the logic for field address codegen; it is needed for aggregate
initializers, and I don't want to duplicate the bitfield-handling code.
(I'll send a patch for aggregate initializers to the mailing
list sometime soon.)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46904
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Fri, 8 Feb 2008 22:06:17 +0000 (22:06 +0000)]
A bunch-o changes to fix <rdar://problem/
5716046 > incomplete implementation of ObjC class warning is incomplete
As part of this fix, I made a low-level change to the text diagnostics machinery (to basically avoid printing duplicate source lines/carets when you have multiple diagnostics that refer to the same exact place). For now, this only happens with we don't have a source range (could be extended to support source ranges as well).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46897
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 8 Feb 2008 21:10:02 +0000 (21:10 +0000)]
Split off expression-bindings in ValueState from variable-bindings.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46892
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 8 Feb 2008 20:29:23 +0000 (20:29 +0000)]
Changed "GetValue" methods to take an
Expr* instead of a Stmt*, since we only
store bindings for Expr*.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46891
91177308 -0d34-0410-b5e6-
96231b3b80d8
Lauro Ramos Venancio [Fri, 8 Feb 2008 19:46:46 +0000 (19:46 +0000)]
Fix a bitfield regression. Reported by Anders Carlsson.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46889
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 8 Feb 2008 19:17:19 +0000 (19:17 +0000)]
Moved implementation of "RemoveDeadBindings" from the main
GRConstants logic to ValueStateManager.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46888
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 8 Feb 2008 19:08:13 +0000 (19:08 +0000)]
Removed ability to create symbol bindings
in VarKey and VariableBindingsTy.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46887
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Fri, 8 Feb 2008 18:01:27 +0000 (18:01 +0000)]
Use getLogicalLineNumber() in FuzzyParseMicrosoftAsmStatement(), it's more general and simplifies the code.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46885
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 8 Feb 2008 07:32:26 +0000 (07:32 +0000)]
Moved that clang doesn't depend on llvm-gcc above
the subsection of building clang with llvm.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46884
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 8 Feb 2008 07:14:58 +0000 (07:14 +0000)]
Implemented transfer functions for "<<" and ">>" when the RValues are
ConcreteInts.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46883
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Fri, 8 Feb 2008 07:10:48 +0000 (07:10 +0000)]
Add instructions for building clang while building llvm.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46881
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 8 Feb 2008 07:05:39 +0000 (07:05 +0000)]
Implemented transfer functions for Statement-Expressions and Commas.
Fixed bug in dispatching to the correct transfer function for |=, &=, and ^|.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46880
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Fri, 8 Feb 2008 06:45:49 +0000 (06:45 +0000)]
De-^Mify file.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46879
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Fri, 8 Feb 2008 03:36:19 +0000 (03:36 +0000)]
Support fuzzy parsing MS line-oriented __asm's that originate from a macro (a case where we can't obtain source line info). As the test case indicates, we don't currently support line-oriented asm statements that mix file/macro body tokens.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46878
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 8 Feb 2008 03:02:48 +0000 (03:02 +0000)]
More variable renamings.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46875
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 8 Feb 2008 02:57:34 +0000 (02:57 +0000)]
Renamed InvalidValue to UnknownVal.
Renamed UninitializedValue to UninitializedVal.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46874
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Fri, 8 Feb 2008 01:24:30 +0000 (01:24 +0000)]
Fix indentation.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46873
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Fri, 8 Feb 2008 01:19:44 +0000 (01:19 +0000)]
Detabify SemaExpr. My text editor defaults to 8 spaces per tab, so it
gets kind of annoying.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46872
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Fri, 8 Feb 2008 00:48:24 +0000 (00:48 +0000)]
Improve diagnostic for illegal array initialization.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46869
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 8 Feb 2008 00:33:21 +0000 (00:33 +0000)]
Put back the top-level asm code; all tests pass now.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46868
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 8 Feb 2008 00:23:11 +0000 (00:23 +0000)]
Back out 46855 for now, it causes test failures on Darwin.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46867
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Thu, 7 Feb 2008 23:24:32 +0000 (23:24 +0000)]
- Add support for fuzzy parsing line-oriented __asm's (yuck).
- Change handling of __w64 to a built-in macro.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46864
91177308 -0d34-0410-b5e6-
96231b3b80d8
Lauro Ramos Venancio [Thu, 7 Feb 2008 19:29:53 +0000 (19:29 +0000)]
Simplify bitfield codegen.
Fix codegen of struct { short a[3]; int b:15; }.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46859
91177308 -0d34-0410-b5e6-
96231b3b80d8
Lauro Ramos Venancio [Thu, 7 Feb 2008 18:18:58 +0000 (18:18 +0000)]
Fix codegen of
struct {
char a[3];
unsigned char b:1;
};
Fix PR1990.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46856
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Thu, 7 Feb 2008 17:19:11 +0000 (17:19 +0000)]
Handle top-level asm declarations.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46855
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Thu, 7 Feb 2008 15:26:07 +0000 (15:26 +0000)]
Minor cleanup from yesterday's -fms-extension commit. Move __int* MS keywords to predefined macros. This removes some of the MS-madness from Parser::ParseDeclarationSpecifiers().
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46852
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 7 Feb 2008 15:20:13 +0000 (15:20 +0000)]
Added some more opcode pretty-printing.
Minor cleanups with generating nodes for NULL-pointer dereferences.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46851
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 7 Feb 2008 06:33:19 +0000 (06:33 +0000)]
Added proof-of-concept NULL pointer diagnostics to GRConstants.
Modified the driver to pass the Diagnostic object to GRConstants.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46847
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 7 Feb 2008 06:04:18 +0000 (06:04 +0000)]
Added support to distinguish between both implicit and explicit null dereferences.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46846
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 7 Feb 2008 06:03:59 +0000 (06:03 +0000)]
Implement support for the extremely atrocious MS /##/ extension,
which pastes together a comment. This is only enabled with
-fms-extensions of course.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46845
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 7 Feb 2008 05:57:50 +0000 (05:57 +0000)]
these aren't tokens.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46844
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 7 Feb 2008 05:48:01 +0000 (05:48 +0000)]
Added recording of "implicit" NULL dereferences of symbolic pointers.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46843
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Thu, 7 Feb 2008 05:24:51 +0000 (05:24 +0000)]
Add a FIXME for alternate address spaces.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46841
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 7 Feb 2008 05:01:42 +0000 (05:01 +0000)]
get the tree building again
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46840
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 7 Feb 2008 04:16:04 +0000 (04:16 +0000)]
Added several guards in transfer functions for "InvalidValues".
Fixed bug in RemoveDeadBindings by implementing a simple "mark-and-sweep"
cleaner over the bindings, starting from the Decls and block-level expressions
that are considered "live" by the Liveness analysis.
Fixed bug in isa<> implementation for class LValue.
Added "VisitDeclRefExpr" to GRConstants so that we explicitly bind the current
value of variable to the Block-level Expression (i.e., when the DeclRefExpr is
at the CFGBlock level).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46839
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Thu, 7 Feb 2008 03:50:06 +0000 (03:50 +0000)]
Implement -fms-extensions. This allows us to fuzzy parse non-standard MS constructs used in "windows.h".
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46838
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 7 Feb 2008 02:38:55 +0000 (02:38 +0000)]
Fixed bug in LiveVariables analysis where Block-level exprs appearing
as the initializers for DeclStmts were not being registered as being
live at the start of the DeclStmt.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46837
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 7 Feb 2008 01:08:27 +0000 (01:08 +0000)]
Added transfer function logic for ReturnStmts.
Fixed insidious bug in handling dereferences.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46835
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 6 Feb 2008 23:03:14 +0000 (23:03 +0000)]
Minor reordering of the serialization of the fields of MemberExpr to result
in a smaller encoding on disk.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46832
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 6 Feb 2008 22:50:25 +0000 (22:50 +0000)]
Major code refactoring/cleanup with transfer function logic. Now the
code structure is more suitable for additional symbolic analysis.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46831
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Wed, 6 Feb 2008 22:48:16 +0000 (22:48 +0000)]
Make sure to propagate qualifiers through the member operator.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46830
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 6 Feb 2008 21:20:34 +0000 (21:20 +0000)]
explicitly document that return statement argument does not necessarily follow the result type of the function. Add testcase.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46823
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Wed, 6 Feb 2008 19:03:27 +0000 (19:03 +0000)]
Use the subprocess module instead of os.system. Patch by Sam Bishop.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46819
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 6 Feb 2008 17:56:00 +0000 (17:56 +0000)]
Added main transfer function support for unary operator "!".
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46815
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 6 Feb 2008 17:32:17 +0000 (17:32 +0000)]
Added assumption logic for symbolic non-lvalues when used in conditions such as
"if(x)". On the true branch we know the value is != 0, and on the false branch
we know it is 0.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46814
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Wed, 6 Feb 2008 07:23:14 +0000 (07:23 +0000)]
Add pointer + int (and vice versa) to the constant emitter.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46812
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Wed, 6 Feb 2008 07:19:27 +0000 (07:19 +0000)]
Generate code for the various __builtin_ctz functions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46811
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 6 Feb 2008 06:06:49 +0000 (06:06 +0000)]
now that ConvertTagDeclType is nice and simple, use it from UpdateCompletedType.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46809
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 6 Feb 2008 06:03:51 +0000 (06:03 +0000)]
simplify and speed up type refinement logic. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46808
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 6 Feb 2008 05:48:29 +0000 (05:48 +0000)]
only convert the type name once, not each type it is refined.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46807
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Wed, 6 Feb 2008 05:33:51 +0000 (05:33 +0000)]
Fix the codegen of structs with flexible array members.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46806
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 6 Feb 2008 05:29:46 +0000 (05:29 +0000)]
simplify a bunch of code.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46805
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 6 Feb 2008 05:21:55 +0000 (05:21 +0000)]
rename TypeHolderMap to TypeCache, which more aptly describes what it is.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46804
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 6 Feb 2008 05:18:32 +0000 (05:18 +0000)]
split tagged decl layout into its own method.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46803
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 6 Feb 2008 05:12:09 +0000 (05:12 +0000)]
only update the llvm type for a struct when we used the struct
previously in an opaque context. If we didn't do this,
computing its layout could be wasted: just be lazy.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46802
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 6 Feb 2008 05:08:19 +0000 (05:08 +0000)]
sink more of the type related code into CodeGenTypes.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46801
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 6 Feb 2008 04:54:32 +0000 (04:54 +0000)]
codegen static variables in a function into a different namespace from
static variables outside functions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46800
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Wed, 6 Feb 2008 04:53:22 +0000 (04:53 +0000)]
Be a bit stricter about array type compatibility.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46799
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 6 Feb 2008 04:51:19 +0000 (04:51 +0000)]
Finish off the refactoring of type handling stuff. Now we recompile every
tag decl after it has been completed
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46798
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 6 Feb 2008 04:41:14 +0000 (04:41 +0000)]
Fixed bug in '=' transfer function: RHS does not have to be a non-LValue.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46797
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 6 Feb 2008 04:31:33 +0000 (04:31 +0000)]
Fixed signedness bug in cast transfer function when casting integers to pointers.
Removed lval::SymIntConstraintVal; wrappers for symbolic constraints are not lvalues (only integers that evaluate to !0 or 0).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46796
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 6 Feb 2008 03:56:15 +0000 (03:56 +0000)]
Modified state pretty-printing to include the '!=' and '==' constraints on
symbols (for constant integers).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46795
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 6 Feb 2008 02:50:36 +0000 (02:50 +0000)]
Disabled operator= for ValueStateImpl.
ValueState no longer inherits FoldingSetNode (not needed).
Removed redundant operator= implementation for ValueState (it simply did the default behavior).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46794
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 6 Feb 2008 02:45:20 +0000 (02:45 +0000)]
Fixed bug when allocating a ValueStateImpl object in getPersistentState()
using the bump-pointer allocator and a placed new; we accidentally allocated
a ValueStateImpl* instead, causing an overrun when we did a placed new().
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46793
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 6 Feb 2008 02:01:47 +0000 (02:01 +0000)]
move the codegen ASTConsumer out of the driver into libcodegen,
eliminating a bunch of forwarding methods and generally
simplifying things.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46792
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 6 Feb 2008 01:42:25 +0000 (01:42 +0000)]
pull .ll and .bc writing out of the ASTConsumer destructors into some top
level code in clang. This is a cleanup, but does implement "-o" for
-emit-llvm. One effect of this is that "clang foo.c -emit-llvm" will now
emit into foo.ll instead of stdout. Use "clang foo.c -emit-llvm -o -" or
"clang < foo.c -emit-llvm" to get the old behavior.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46791
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 6 Feb 2008 00:54:14 +0000 (00:54 +0000)]
Added some skeleton code for performing "assume" on symbols: e.g. assume($0 != 0).
This action will add constraints to the possible values of a symbol.
Still needs to be debugged.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46789
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 6 Feb 2008 00:51:33 +0000 (00:51 +0000)]
inform astconsumer about tagdecls as they are defined.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46788
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 6 Feb 2008 00:46:58 +0000 (00:46 +0000)]
pass the astconsumer into Sema's ctor, clean up some stuff in
Sema::ActOnTranslationUnitScope. The various ObjC pieces at the top
of Sema.cpp should be moved into SemaObjC or something.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46787
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 6 Feb 2008 00:23:21 +0000 (00:23 +0000)]
rename ASTSTreamer.{h|cpp} -> ParseAST.{h|cpp}
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46786
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 6 Feb 2008 00:15:02 +0000 (00:15 +0000)]
kill the ASTStreamer class, inlining it into its only client: clang::ParseAST
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46785
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Wed, 6 Feb 2008 00:11:32 +0000 (00:11 +0000)]
Even more inline asm codegen fixes.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46784
91177308 -0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Wed, 6 Feb 2008 00:02:50 +0000 (00:02 +0000)]
simple implementation of __builtin_alloca
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46783
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Tue, 5 Feb 2008 23:59:27 +0000 (23:59 +0000)]
Add a FIXME to clarify previous commit/experiment.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46782
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Tue, 5 Feb 2008 23:30:20 +0000 (23:30 +0000)]
Handle the memory clobber.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46780
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Tue, 5 Feb 2008 23:18:57 +0000 (23:18 +0000)]
Improvements to inline asm code generation.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46779
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 5 Feb 2008 23:08:41 +0000 (23:08 +0000)]
Added pretty-printing support for lval::SymIntConstraintVal and
nonlval::SymIntConstraintVal.
Reworked transfer function for '==' and '!=' for LValues to return
SymIntConstraintVal when comparing a symbol with a constant.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46778
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Tue, 5 Feb 2008 23:03:50 +0000 (23:03 +0000)]
Handle simple asm statements correctly.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46777
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 5 Feb 2008 22:40:55 +0000 (22:40 +0000)]
simplify some code.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46774
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 5 Feb 2008 22:21:54 +0000 (22:21 +0000)]
Moved implementation of cast<> for SymbolData closer to SymbolData's definition.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46772
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 5 Feb 2008 22:10:48 +0000 (22:10 +0000)]
Added new "NonLValue" class: SymIntConstraintVal. This class represents a binary
contraint between a symbol and an integer constant.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46771
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 5 Feb 2008 21:52:21 +0000 (21:52 +0000)]
Moved subclasses of LValue and NonLValue into their own namespaces.
This noticeably cleans up the naming of these classes.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46770
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 5 Feb 2008 21:32:43 +0000 (21:32 +0000)]
Added "SymIntConstraint", a utility class to represent intermediate values for
transfer function evaluation that represent constraints between symbolic values
and constant integers.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46769
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Tue, 5 Feb 2008 21:27:35 +0000 (21:27 +0000)]
Fix Parser::ParseObjCTryStmt() to allow for trailing @-keyword statements/expressions.
This bug fix is the result of not having 2-token lookahead to recognize specific @-keywords.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46768
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Tue, 5 Feb 2008 20:54:21 +0000 (20:54 +0000)]
Add some binops.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46766
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Tue, 5 Feb 2008 20:01:53 +0000 (20:01 +0000)]
More improvements to inline asm CG.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46762
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 5 Feb 2008 19:35:18 +0000 (19:35 +0000)]
Added "batch" processing versions of Nodify and SetValue. Created typedefs
for buffers for RValues and States.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46759
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 5 Feb 2008 18:51:06 +0000 (18:51 +0000)]
Added a "ConstantNotEq" map to ValueState (and added necessary typedefs and factory objects to ValueStateManager).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46758
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 5 Feb 2008 18:24:17 +0000 (18:24 +0000)]
Added some comments.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46756
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 5 Feb 2008 18:19:15 +0000 (18:19 +0000)]
Renamed typedef "iterator" in ValueState to "vb_iterator" (for "VariableBindings").
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46755
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 5 Feb 2008 18:17:58 +0000 (18:17 +0000)]
Reordered fields/methods in ValueState to make it more aesthetically pleasing.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46754
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Tue, 5 Feb 2008 17:26:36 +0000 (17:26 +0000)]
Use correct flag value.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46752
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Tue, 5 Feb 2008 16:57:38 +0000 (16:57 +0000)]
Append input argument to args vector.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46751
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Tue, 5 Feb 2008 16:35:33 +0000 (16:35 +0000)]
Add code generation for inline asm statements.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46750
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 5 Feb 2008 08:06:13 +0000 (08:06 +0000)]
rewrite some of the type refinement code to eliminate dangling pointers
simplify the code and generally make it more robust.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46745
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 5 Feb 2008 07:17:49 +0000 (07:17 +0000)]
Overhauling of "ValueState" so that it represents its own functional data
structure that can contain several maps, not just one.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46744
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 5 Feb 2008 06:55:31 +0000 (06:55 +0000)]
Change the key of CGRecordLayouts from being an llvm type* to being a decl*. LLVM
Type*'s can change as types are refined, so we can't use them as a stable key in
the map. Decls don't change, so use them instead.
This patch was written by Anders, but he's too shy to commit it himself :)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46743
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 5 Feb 2008 06:37:34 +0000 (06:37 +0000)]
Relax an assertion, fixing PR1968
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46742
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 5 Feb 2008 05:15:51 +0000 (05:15 +0000)]
ValueManager now uses the BumpPtrAllocator owned by the ExplodedGraph.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46740
91177308 -0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 5 Feb 2008 03:17:42 +0000 (03:17 +0000)]
Update outdated comment.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46737
91177308 -0d34-0410-b5e6-
96231b3b80d8