aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen
AgeCommit message (Collapse)Author
2010-01-22Simplify code.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94175 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-22Ensure we output all non-virtual base vtables. Fixes PR5890.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94163 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-22Update debugging code.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94145 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-21Move the VTT related code into its own file, CGVTT.cppAnders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94079 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-20 A Decl->getName() is not unique. However, the debug info descriptors Devang Patel
are uniqued. The debug info descriptor describing record's context is necessary to keep two Decl's descriptor unique if their name match. There is more work to do to create descriptors for DeclContext. As a temp. step use type's name in FwdDecl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94050 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-19Emit human readable names for operators.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93837 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-19First cut at emitting debugging information for C++ member functions.Devang Patel
There is lot more work to do in this area. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93836 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-19Use llvm::Function name as the linkage name, but strip off leading '01' from ↵Devang Patel
display name. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93822 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-19Refactor.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93814 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-18llvm::Function name is the linkage name. If it has a '01' as a prefix then ↵Devang Patel
probably there is a reason. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93808 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-18More VTT builder fixes. With these fixes we now correctly handle the very ↵Anders Carlsson
complex VTT example from the Itanium ABI spec. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93725 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-18Move some common code into BuildVTT.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93710 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-18Fix a bunch of VTT layout bugs, add simple tests for VTT layout.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93709 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-17Minor VTT builder cleanup, no functionality change.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93696 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-17Get the ctor vtable address points directly from the VTT builder.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93681 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-16Add codgen for BI__builtin_llvm_memory_barrier.Tanya Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93611 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-16Fix crash generating debug info for constructor for anonymous struct.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93601 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-15Fix a couple bugs in copy assignment operator synthesis.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93546 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-15Convert the type of the LValue offset variable in APValue to CharUnits, movingKen Dyck
the LValue-related methods of APValue out of line to avoid header file leaching. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93512 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-14Emit linkage name even if it matches regular name. The code generator uses ↵Devang Patel
linkage name to find subprogram entry for the current function. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93461 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-14Add comment.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93434 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-14Made ObjC method name mangling match GCC (which does it in a stupid and ↵David Chisnall
broken way that can give conflicts on method names containing underscores, but is needed for gdb to work because gdb does not know how to read ObjC class tables and relies on the mangling). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93427 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-14Store the address points for constructor vtables directly in the VTT ↵Anders Carlsson
builder, because that's the only time they're needed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93412 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-14Add a DenseMapInfo specialization for BaseSubobject.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93399 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-14Because CurLoc is the current source location as far as CGDebugInfo is ↵Devang Patel
concerned. It is expected that this is set (usually left bracket location of function body compound statement) before EmitfunctionStart() is used. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93389 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-14Emit human readable names for c/c++ functions. Avoid emitting linkage name ↵Devang Patel
if it matches regular name. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93383 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-13Add a BaseSubobject class to uniquely identify a base class subobject. Not ↵Anders Carlsson
yet used. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93345 91177308-0d34-0410-b5e6-96231b3b80d8
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