aboutsummaryrefslogtreecommitdiff
path: root/CodeGen/CodeGenModule.cpp
AgeCommit message (Collapse)Author
2007-12-29implement codegen support for most unary operators when Chris Lattner
initializing a global. This handles important cases like: float foo3 = -0.01f; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@45427 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-29Don't attribute in file headers anymore. See llvmdev for theChris Lattner
discussion of this change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@45410 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-18local static vars are globals also. This fixes a testcaseChris Lattner
reported by Seo. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@45156 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-18introduce a new CodeGenModule::getIntrinsic method, which wraps Chris Lattner
Intrinsic::getDeclaration, allowing much more terse code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@45136 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-17add a hack so that codegen doesn't abort on missing sema of initializers, nowChris Lattner
we emit stuff like this: abort on missing sema of initializers, now we emit stuff like this: t3.c:1:24: warning: cannot codegen this initializer yet const char x[2][4] = { { 'a', 'b', '\0', '\0' }, { 'c', 'd', 'e', '\0' } }; ^~~~~~~~~~~~~~~~~~~~~~~~ This should be removed when sema is finished. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@45086 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-17Update to use new PointerType::getUnqual() api.Christopher Lamb
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@45081 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-13builtin id 0 is invalid, don't use a slot for it.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44968 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-12fix off-by-one error.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44963 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-12TargetInfo no longer includes a reference to SourceManager.Ted Kremenek
Moved all clients of Diagnostics to use FullSourceLoc instead of SourceLocation. Added many utility methods to FullSourceLoc to provide shorthand for: FullLoc.getManager().someMethod(FullLoc.getLocation()); instead we have: FullLoc.someMethod(); Modified TextDiagnostics (and related classes) to use this short-hand. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44957 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-11Mega-patch: ripped SourceManager out of Diagnostic/DiagnosticClient. NowTed Kremenek
SourceManager is passed by reference, allowing the SourceManager to be associated with a specific translation unit, and not the entire execution of the driver. Modified all users of Diagnostics to comply with this new interface. Integrated SourceManager as a member variable of TargetInfo. TargetInfo will eventually be associated with a single translation unit (just like SourceManager). Made the SourceManager reference in ASTContext private. Provided accessor getSourceManager() for clients to use instead. Modified clients to comply with new interface. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44878 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-11Reimplement support for strings that initialize global inits now thatChris Lattner
the types are right in sema. Thanks Steve. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44834 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-10add support for implicit cast from array to pointer that is not the elementChris Lattner
type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44809 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-10abort when we lower an initializer to the wrong type, as we currently do for:Chris Lattner
char text[] = "string"; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44752 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-10extend or truncate the initializer for a string initializer to match its type.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44751 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-09Implement codegen support for:Chris Lattner
char text[8] = "string"; Big fixme remains. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44750 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-09implement support for functions that initialize globals.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44730 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-02Treat discarding array initializer elements as an extwarn (so ↵Christopher Lamb
-pedantic-errors flags it). Allow CodeGen to truncate the initializer if needed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44518 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-02globals can't be vla'sChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44512 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-02add codegen support for global inits that require array decay.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44511 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-02warn about unhandled initializers instead of crashing on them.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44510 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-02Handle global variable definitions which change the type of a definition, ↵Chris Lattner
such as: extern int x[]; void foo() { x[0] = 1; } int x[10]; void bar() { x[0] = 1; } git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44509 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-02merge the llvm global variable when there are multiple C decls.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44507 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-02implement codegen for functions whose function body type don't matchChris Lattner
their prototype. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44506 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-02merge functions with multiple function decls if they have the same name.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44505 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-02Warn about unsupported codegen with the diags machinery, giving us:Chris Lattner
t.c:3322:5: warning: cannot codegen this yet __asm__ ("bswap %0" : "+r" (_data)); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ instead of: Unimplemented stmt! (AsmStmt 0x80eaa0 <t.c:3331:5, line:3334:28>) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44501 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-02Support initalisers for more than just int-typed static variables.Oliver Hunt
We now use the CodeGenModule logic for generating the constant initialiser expression, so happily further initialiser fixes should automatically work for statics as well. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44495 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-28Implement support for -fwritable-strings and make the code generatorChris Lattner
merge string literals when it is not provided. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44394 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-23improve codegen for global variable initializers, implementing Chris Lattner
test/CodeGen/global-with-initialiser.c Patch by Oliver Hunt! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44290 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-01Put constant CFStrings in the __DATA,__cfstring section.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43593 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-31Take 2.Devang Patel
Make target info available to clang code generator. This is far from complete but this helps clang codegen module make progress. At the moment target triplet and target description strings are hard coded in clang::TargetInfo git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43572 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-31Initialize MemCpyFnDevang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43569 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-31temporarily revert devang's patch to link in the llvm codegen etc.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43544 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-31Make target info available to clang code generator.Devang Patel
This is far from complete but this helps clang codegen module make progress. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43536 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-30Refactor code into a separate method.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43519 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-30Fix 80 col violations.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43516 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-26Codegen global array initializers.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43383 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-17Updated VC++ build system.Hartmut Kaiser
Silenced some VC++ warnings. Had to rephrase a partial specialization of the IntrospectionTrait struct in SerializationTest.cpp, please review. Added a compiler specific workaround in IdentifierTable.h. Is that the way to fix this kind of issues? git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43074 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-13Phase 2 of making the Decl class more lightweight...Steve Naroff
Move Identifier/Loc instance variables (and associated getters/setters) down from Decl to ScopedDecl/FieldDecl. Objc AST's can now inherit from Decl without getting instance variables and types that are C specific. For now, I am keeping NextDeclarator, since I believe it may be useful to ObjC. If not, it can be moved later. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41934 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-04eliminate some VC++ warnings, patch contributed by Hartmut KaiserChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41692 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-31Implement codegen support for lowering "library builtins" like __builtin_isinf Chris Lattner
to their corresponding library routines (e.g. isinf). This allows us to handle all the stuff in macos math.h, and other stuff as it's added to *Builtins.def. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41634 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-31add the ability to get the llvm function corresponding to a library builtin.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41633 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-21Implement code generation for constant CFStrings.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41206 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-17Add preliminary support for converting struct types.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41145 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-15Refactor code so that isIntegerConstantExpr has an ASTContext available.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@39884 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-14A significant refactoring of the type size stuff to also Chris Lattner
compute type alignment. This info is needed for struct layout. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@39850 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-14Implement trivial integer initializers, like 'int X = 4;' for globalChris Lattner
vars. Approach suggested by Keith. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@39849 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-14In "int X,Y;", compile both X and Y.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@39848 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-13implement support for basic codegen of global variables with no initializers.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@39795 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-11Stage two of getting CFE top correct.Reid Spencer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@39734 91177308-0d34-0410-b5e6-96231b3b80d8