aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen
AgeCommit message (Collapse)Author
2010-01-11Use the new isInteger() method in a couple places, some random cleanup, andChris Lattner
add a fixme. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93179 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-11Fix type mismatch on 64-bit platforms (GNU ObjC).David Chisnall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93169 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-11Roll out ASTContext::getTypeSizeInChars(), replacing instances ofKen Dyck
"ASTContext::getTypeSize() / 8". Replace [u]int64_t variables with CharUnits ones as appropriate. Also rename RawType, fromRaw(), and getRaw() in CharUnits to QuantityType, fromQuantity(), and getQuantity() for clarity. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93153 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-10Try to make cmake happyAnton Korobeynikov
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93119 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-10Generalize target weirdness handling having proper layering in mind:Anton Korobeynikov
1. Add helper class for sema checks for target attributes 2. Add helper class for codegen of target attributes As a proof-of-concept - implement msp430's 'interrupt' attribute. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93118 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-10Rename file to generalization in next commitsAnton Korobeynikov
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93117 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-09implement codegen support for preinc as an lvalue, PR5514.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93076 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-09refactor pre/postinc logic into CGF and require the caller to pass in theChris Lattner
lvalue to poke, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93075 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-09revert r92749, which is just dead code.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93074 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-08Fix for PR5967: Make const-marking for LLVM globals correct for cases requiringEli Friedman
run-time initialization, and emit run-time initializers aggresively to avoid ordering issues with deferred globals. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92976 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-08Export a public symbol for classes with the GNU runtime. David Chisnall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92973 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-07fix PR5869: mangle static symbols like gcc does to make it easier to diff ↵Nuno Lopes
symbol tables git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92911 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-06Fix linkage for RTTI names by re-using the logic for computing theDouglas Gregor
linkage of vtables. Before this, we were emitting RTTI names for template instantiations with strong external linkage rather than with weak ODR linkage. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92857 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-06Fix marking of virtual members for nested classes whose first non-pure ↵Douglas Gregor
virtual function has a body inlined in the class git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92855 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-06Fix for PR5691David Chisnall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92846 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-06Fix (invalid) may-be-uninitialized warning.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92828 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-06Revert my available_externally vtables experiment. It's breaking the ↵Douglas Gregor
LLVM-with-Clang build with linker errors that I have yet to investigate. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92822 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-06Reorder to avoid invalidating idx which is an accessor into VCall.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92819 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05Silence bogus GCC warningDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92787 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05Make use of available_externally linkage for vtables when theDouglas Gregor
non-inline key function of a class template instantiation, when no key function is present, the class template instantiation itself was instantiated with an explicit instantiation declaration (aka extern template). I'm fairly certain that the C++0x specification gives us this lattitude, although GCC doesn't take advantage of it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92779 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05Improve key-function computation for templates. In particular:Douglas Gregor
- All classes can have a key function; templates don't change that. non-template classes when computing the key function. - We always mark all of the virtual member functions of class template instantiations. - The vtable for an instantiation of a class template has weak linkage. We could probably use available_externally linkage for vtables of classes instantiated by explicit instantiation declarations (extern templates), but GCC doesn't do this and I'm not 100% that the ABI permits it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92753 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05Add code to skip the emission of available externally functions at -O0. WIP.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92749 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05When emitting member function pointers, use the canonical decl if the member ↵Anders Carlsson
function is virtual. Fixes PR5940. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92680 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-04Revert r92431, this code isn't dead and broke the ntfs build.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92493 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-04Fix -Asserts warning.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92491 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-03Get rid of more dead code.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92439 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-02Get rid of some unnecessary code.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92432 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-02Delete impossible case.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92431 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-02Speculative MSVC fix.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92421 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-02Move address points to CGVtableInfo, no functionality change.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92420 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-02Correctly pass VTT parameters to constructors and destructors. The VTTs ↵Anders Carlsson
aren't yet used in the ctors/dtors, but that will follow. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92409 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-01Move a few more functions away from CGCXX and to CGClass and CGExprCXX.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92399 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-01Fix last patch, catch of reference to non-pointer.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92386 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-01Fix catching a reference to a pointer.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92385 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-31If the key function of a record is inline, then the RTTI data should have ↵Anders Carlsson
weak_odr linkage. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92371 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-31More RTTI builder cleanup.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92360 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-30Fix a bunch of bugs with VMI RTTI building, and add a whole bunch of tests.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92319 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-30More RTTI cleanup, test that RTTI classes have the correct vtables.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92284 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-29Match gcc and treat vector types as fundamental types.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92278 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-29Handle enum types as well.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92276 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-29Test linkage of RTTI descriptors of array types.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92274 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-29Fix function type RTTI linkage and add tests.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92266 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-29strength reduce this call away.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92253 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-29Get rid of FixedWidthIntType, as suggested by Chris and Eli.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92246 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-28adjust for llvm api changes.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92236 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-28this form of SetDebugLocation is about to go away, add some #includes thatChris Lattner
are about to not come in implicitly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92228 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-27Promote arguments of frameaddr / returnaddr builtins to i32 type, when needed.Anton Korobeynikov
This is needed for the platforms, where bitwidth of "int" is not 32 bits (e.g. 16 on msp430). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92176 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-27Add a sanity assertion so that we don't silently generate bad code; I'll fileEli Friedman
a bug with a testcase hitting this assertion in a moment. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92175 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-27Fix obvious mistake.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92172 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-25Remove some dead variables clang-analyzer found.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92162 91177308-0d34-0410-b5e6-96231b3b80d8