- Mar 26, 2009
-
-
Chris Lattner authored
llvm-svn: 67734
-
Chris Lattner authored
llvm-svn: 67733
-
Chris Lattner authored
llvm-svn: 67732
-
Ted Kremenek authored
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
-
Bill Wendling authored
llvm-svn: 67729
-
Bill Wendling authored
%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
-
Bill Wendling authored
llvm-svn: 67727
-
Anders Carlsson authored
llvm-svn: 67726
-
Anders Carlsson authored
Factor the member access specifier setting code into its own function. No intended functionality change. llvm-svn: 67725
-
Dale Johannesen authored
called from llc, not opt, but it's an IR level optimization nevertheless.) llvm-svn: 67724
-
Anders Carlsson authored
Handle parsing of templates in member declarations. Pass the AccessSpecifier all the way down to ActOnClassTemplate. Doug, Sebastian: Plz review! :) llvm-svn: 67723
-
Anders Carlsson authored
llvm-svn: 67722
-
Eli Friedman authored
is of type void*. I'll try to add the appropriate checking later. llvm-svn: 67721
-
Douglas Gregor authored
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
-
Devang Patel authored
Before deleting a basic block, give other loop passes a chance cleanup analysis values, related to the instructions in the basic block. llvm-svn: 67719
-
Anders Carlsson authored
Also, fix fallout from the change. llvm-svn: 67717
-
Douglas Gregor authored
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
-
Jim Grosbach authored
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
-
- Mar 25, 2009
-
-
Fariborz Jahanian authored
is not in use). llvm-svn: 67713
-
Douglas Gregor authored
llvm-svn: 67710
-
Douglas Gregor authored
llvm-svn: 67708
-
Douglas Gregor authored
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
-
Chris Lattner authored
... arguments. llvm-svn: 67706
-
Chris Lattner authored
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
-
Ted Kremenek authored
llvm-svn: 67703
-
Evan Cheng authored
llvm-svn: 67702
-
Evan Cheng authored
Also fixes SDISel so it *does not* force promote return value if the function is not marked signext / zeroext. llvm-svn: 67701
-
Anders Carlsson authored
llvm-svn: 67700
-
Mike Stump authored
llvm-svn: 67697
-
Mike Stump authored
from previous block literals. llvm-svn: 67696
-
Mike Stump authored
llvm-svn: 67695
-
Evan Cheng authored
llvm-svn: 67694
-
Dale Johannesen authored
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
-
Evan Cheng authored
llvm-svn: 67691
-
Duncan Sands authored
llvm-svn: 67689
-
Evan Cheng authored
llvm-svn: 67688
-
Douglas Gregor authored
llvm-svn: 67687
-
Douglas Gregor authored
llvm-svn: 67686
-
Douglas Gregor authored
llvm-svn: 67685
-
Douglas Gregor authored
llvm-svn: 67684
-