summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* fix some warnings in release-asserts mode.Chris Lattner2009-03-261-20/+19
| | | | llvm-svn: 67738
* fix an apparently real bug exposed by a warning in -asserts mode.Chris Lattner2009-03-261-3/+4
| | | | llvm-svn: 67737
* fix warning in -asserts build.Chris Lattner2009-03-261-4/+2
| | | | llvm-svn: 67736
* most of this is plumbing to get CompileOptions down into Chris Lattner2009-03-267-35/+37
| | | | | | | CodeGenModule. Once there, add a new NoCommon option to it and implement -fno-common. llvm-svn: 67735
* make this self contained, declare everything as 'class'.Chris Lattner2009-03-261-1/+5
| | | | llvm-svn: 67734
* sort items.Chris Lattner2009-03-261-13/+13
| | | | llvm-svn: 67733
* add driver and clang-cc to project.Chris Lattner2009-03-261-85/+175
| | | | llvm-svn: 67732
* analyzer infrastructure: make a bunch of changes to symbolic expressions thatTed Kremenek2009-03-2622-579/+571
| | | | | | | | | | | | | | | | Zhongxing and I discussed by email. Main changes: - Removed SymIntConstraintVal and SymIntConstraint - Added SymExpr as a parent class to SymbolData, SymSymExpr, SymIntExpr - Added nonloc::SymExprVal to wrap SymExpr - SymbolRef is now just a typedef of 'const SymbolData*' - Bunch of minor code cleanups in how some methods were invoked (no functionality change) This changes are part of a long-term plan to have full symbolic expression trees. This will be useful for lazily evaluating complicated expressions. llvm-svn: 67731
* Add testcase for r67728.Bill Wendling2009-03-261-0/+25
| | | | llvm-svn: 67729
* Match this pattern so that we can generate simpler code:Bill Wendling2009-03-261-0/+39
| | | | | | | | | | | | | | | | | | | | %a = ... %b = and i32 %a, 2 %c = srl i32 %b, 1 %d = br i32 %c, into %a = ... %b = and %a, 2 %c = X86ISD::CMP %b, 0 %d = X86ISD::BRCOND %c ... This applies only when the AND constant value has one bit set and the SRL constant is equal to the log2 of the AND constant. The back-end is smart enough to convert the result into a TEST/JMP sequence. llvm-svn: 67728
* Doxygen-ify comments.Bill Wendling2009-03-261-2/+2
| | | | llvm-svn: 67727
* Set the access specifier for templates inside classes.Anders Carlsson2009-03-262-2/+13
| | | | llvm-svn: 67726
* Factor the member access specifier setting code into its own function. No ↵Anders Carlsson2009-03-263-27/+49
| | | | | | intended functionality change. llvm-svn: 67725
* Skip debug info one more place. (This one getsDale Johannesen2009-03-261-6/+12
| | | | | | | called from llc, not opt, but it's an IR level optimization nevertheless.) llvm-svn: 67724
* Handle parsing of templates in member declarations. Pass the AccessSpecifier ↵Anders Carlsson2009-03-267-11/+24
| | | | | | | | all the way down to ActOnClassTemplate. Doug, Sebastian: Plz review! :) llvm-svn: 67723
* Check that the access specifier of a member redeclaration is the same as the ↵Anders Carlsson2009-03-263-3/+47
| | | | | | original declaration. llvm-svn: 67722
* Fix for PR3869: actually enforce that the argument of an indirect goto Eli Friedman2009-03-262-2/+8
| | | | | | is of type void*. I'll try to add the appropriate checking later. llvm-svn: 67721
* The injected-class-name of class templates and class templateDouglas Gregor2009-03-266-5/+64
| | | | | | | | | | | | | | | | | | specializations can be treated as a template. Finally, we can parse and process the first implementation of Fibonacci I wrote! Note that this code does not handle all of the cases where injected-class-names can be treated as templates. In particular, there's an ambiguity case that we should be able to handle (but can't), e.g., template <class T> struct Base { }; template <class T> struct Derived : Base<int>, Base<char> { typename Derived::Base b; // error: ambiguous typename Derived::Base<double> d; // OK }; llvm-svn: 67720
* Before deleting a basic block, give other loop passes a chance cleanup ↵Devang Patel2009-03-253-1/+47
| | | | | | analysis values, related to the instructions in the basic block. llvm-svn: 67719
* Tighten the setAccess assert. We now allow AS_none if the decl contex is not ↵Anders Carlsson2009-03-254-6/+25
| | | | | | | | a C++ record decl. Also, fix fallout from the change. llvm-svn: 67717
* Implement template instantiation for static data members of classDouglas Gregor2009-03-255-64/+172
| | | | | | | | | | | | | | | | | | templates, including in-class initializers. For example: template<typename T, T Divisor> class X { public: static const T value = 10 / Divisor; }; instantiated with, e.g., X<int, 5>::value to get the value '2'. llvm-svn: 67715
* Modify getRegisterValueType() to allow for a register being in mutlipleJim Grosbach2009-03-251-5/+26
| | | | | | | | register classes. Before, MVT::Other would be returned anytime a reg was in multiple register classes. Now, MVT::Other is only returned if the types for those register classes differ. llvm-svn: 67714
* More for for objc2's ivar layout map (currentlyFariborz Jahanian2009-03-251-3/+22
| | | | | | is not in use). llvm-svn: 67713
* Pass access specifiers through to member classes and member enums.Douglas Gregor2009-03-258-15/+24
| | | | llvm-svn: 67710
* Fix notes regarding the instantiation of member classes (and test 'em).Douglas Gregor2009-03-252-3/+7
| | | | llvm-svn: 67708
* Instantiation for member classes of class templates. Note that onlyDouglas Gregor2009-03-259-79/+273
| | | | | | | | | | | the declarations of member classes are instantiated when the owning class template is instantiated. The definitions of such member classes are instantiated when a complete type is required. This change also introduces the injected-class-name into a class template specialization. llvm-svn: 67707
* fix PR3880, fixing a comma swallowing bug handling macros that only takeChris Lattner2009-03-252-0/+11
| | | | | | ... arguments. llvm-svn: 67706
* remove some dead code. ArgTokens can never be empty, because it is always Chris Lattner2009-03-251-9/+0
| | | | | | | | | | | | terminated with an EOF token. The condition it is trying to check for is handled by this code above. // Empty arguments are standard in C99 and supported as an extension in // other modes. if (ArgTokens.empty() && !Features.C99) Diag(Tok, diag::ext_empty_fnmacro_arg); llvm-svn: 67705
* CMake: Also include header files in target when the generator is 'XCode'.Ted Kremenek2009-03-251-2/+2
| | | | llvm-svn: 67703
* Add a test case for PR3779: when to promote the function return value.Evan Cheng2009-03-251-0/+16
| | | | llvm-svn: 67702
* Revert 67132. This is breaking some objective-c apps.Evan Cheng2009-03-2513-50/+37
| | | | | | Also fixes SDISel so it *does not* force promote return value if the function is not marked signext / zeroext. llvm-svn: 67701
* It doesn't make sense to set the access specifier to AS_none (I think)Anders Carlsson2009-03-251-1/+4
| | | | llvm-svn: 67700
* Remove -f__block as codegen for __block variables should be solid.Mike Stump2009-03-253-55/+1
| | | | llvm-svn: 67697
* Fixup codegen for block literals that bleed copy/dispose informationMike Stump2009-03-253-6/+13
| | | | | | from previous block literals. llvm-svn: 67696
* Update to account for the great driver renaming.Mike Stump2009-03-251-1/+1
| | | | llvm-svn: 67695
* One more test.Evan Cheng2009-03-251-1/+6
| | | | llvm-svn: 67694
* When optimizing with debug info, don't keep theDale Johannesen2009-03-251-4/+5
| | | | | | | | stoppoint nodes around until Legalize; doing this imposed an ordering on a sequence of loads that came from different lines, interfering with scheduling. llvm-svn: 67692
* Add __builtin___memcpy_chk tests.Evan Cheng2009-03-251-0/+23
| | | | llvm-svn: 67691
* These tests pass on linux.Duncan Sands2009-03-253-3/+3
| | | | llvm-svn: 67689
* Add a __builtin_object_size test.Evan Cheng2009-03-251-0/+16
| | | | llvm-svn: 67688
* Predicate to detect when a RecordDecl is really the injected-class-nameDouglas Gregor2009-03-253-0/+22
| | | | llvm-svn: 67687
* Stub out some declaration kinds that cannot ever be instantiatedDouglas Gregor2009-03-251-0/+14
| | | | llvm-svn: 67686
* Fix parsing of template classes prefixed by nested-name-specifiersDouglas Gregor2009-03-252-2/+22
| | | | llvm-svn: 67685
* Minor refactoring to eliminate an extra switch during template instantiationDouglas Gregor2009-03-251-3/+9
| | | | llvm-svn: 67684
* Driver: Implement Darwin_X86 tool chain level argument translation.Daniel Dunbar2009-03-252-5/+109
| | | | | | | | | | | | | | | | | | | | - This is really gross, but its the easiest way to match gcc. Once we are confident in the driver, we can try and push these translations down into tools. - No test cases for this yet, it's hard to see the effects of these translations before the gcc tool argument translation is pulled over. - Interaction with "unused argument" warning hasn't been worked out yet. - <rdar://problem/6717359> [driver] implement toolchain specific argument translation. "It's horrible in here." llvm-svn: 67683
* Fix a bug in our autoupgrade support: in an argument list to a functionChris Lattner2009-03-252-4/+19
| | | | | | | | | | | | call, we should treat "i64 zext" as the start of a constant expr, but "i64 0 zext" as an argument with an obsolete attribute on it (this form is already tested by test/Assembler/2007-07-30-AutoUpgradeZextSext.ll). Make the autoupgrade logic more discerning to avoid treating "i64 zext" as an old-style attribute, causing us to reject a valid constant expr. This fixes PR3876. llvm-svn: 67682
* do not rely on callee being operand 0Gabor Greif2009-03-251-1/+1
| | | | llvm-svn: 67681
* Driver: Handle -Xarch_, including warning for nasty -Xarch_ use casesDaniel Dunbar2009-03-253-2/+53
| | | | | | | we aren't going to support. For example: clang -Xarch_i386 -S -Xarch_i386 -o -Xarch_i386 myi386asm.s ... llvm-svn: 67680
* Driver: Replace Option::ForwardToGCC by Option::DriverOption (whichDaniel Dunbar2009-03-253-11/+8
| | | | | | matches the flag in Options.def). llvm-svn: 67679
* This patch adds two more SymbolData subclasses: SymIntExpr and SymSymExpr, forZhongxing Xu2009-03-257-28/+152
| | | | | | | | representing symbolic expressions like 'x'+3 and 'x'+'y'. The design is subjected to change later when we fix the class hierarchy of symbolic expressions. llvm-svn: 67678
OpenPOWER on IntegriCloud