summaryrefslogtreecommitdiffstats
path: root/clang/CodeGen/CodeGenModule.h
Commit message (Collapse)AuthorAgeFilesLines
* Make a major restructuring of the clang tree: introduce a top-levelChris Lattner2008-03-151-129/+0
| | | | | | | | | | lib dir and move all the libraries into it. This follows the main llvm tree, and allows the libraries to be built in parallel. The top level now enforces that all the libs are built before Driver, but we don't care what order the libs are built in. This speeds up parallel builds, particularly incremental ones. llvm-svn: 48402
* add initial support for generating an llvm.globalctors list. Patch by David ↵Chris Lattner2008-03-141-0/+4
| | | | | | Chisnall llvm-svn: 48362
* Add codegen support for ObjC message expressions with the GNU runtime.Chris Lattner2008-03-011-0/+4
| | | | | | Patch by David Chisnall! llvm-svn: 47789
* make include guards more unique.Chris Lattner2008-02-291-2/+2
| | | | llvm-svn: 47754
* Implement codegen for the following static var init.Lauro Ramos Venancio2008-02-261-1/+3
| | | | | | | | | | | void g() { static char a[10]; static char *b = a; } Now we can compile wget! llvm-svn: 47627
* Implement CodeGenModule::getMemSetFn method.Lauro Ramos Venancio2008-02-191-0/+2
| | | | llvm-svn: 47346
* Fix PR1992 by computing the right type for string literals, whichChris Lattner2008-02-111-0/+3
| | | | | | | | is an array type not a pointer type. This requires updating some diags that change and updating the code generator to handle the proper form of strings. llvm-svn: 46941
* sink more of the type related code into CodeGenTypes.Chris Lattner2008-02-061-1/+1
| | | | llvm-svn: 46801
* move the codegen ASTConsumer out of the driver into libcodegen,Chris Lattner2008-02-061-2/+0
| | | | | | | eliminating a bunch of forwarding methods and generally simplifying things. llvm-svn: 46792
* rewrite some of the type refinement code to eliminate dangling pointersChris Lattner2008-02-051-0/+2
| | | | | | simplify the code and generally make it more robust. llvm-svn: 46745
* Factor out the constant generation into its own file.Anders Carlsson2008-01-261-2/+4
| | | | llvm-svn: 46386
* Add first pieces of support for parsing and representing Chris Lattner2008-01-121-0/+4
| | | | | | extern "C" in C++ mode. Patch by Mike Stump! llvm-svn: 45904
* Fix a crash reported by Seo Sanghyeon.Chris Lattner2008-01-031-0/+1
| | | | llvm-svn: 45530
* Don't attribute in file headers anymore. See llvmdev for theChris Lattner2007-12-291-2/+2
| | | | | | discussion of this change. llvm-svn: 45410
* local static vars are globals also. This fixes a testcaseChris Lattner2007-12-181-2/+2
| | | | | | reported by Seo. llvm-svn: 45156
* introduce a new CodeGenModule::getIntrinsic method, which wraps Chris Lattner2007-12-181-1/+2
| | | | | | Intrinsic::getDeclaration, allowing much more terse code. llvm-svn: 45136
* warn about unhandled initializers instead of crashing on them.Chris Lattner2007-12-021-0/+5
| | | | llvm-svn: 44510
* Handle global variable definitions which change the type of a definition, ↵Chris Lattner2007-12-021-9/+11
| | | | | | | | | | | such as: extern int x[]; void foo() { x[0] = 1; } int x[10]; void bar() { x[0] = 1; } llvm-svn: 44509
* implement codegen for functions whose function body type don't matchChris Lattner2007-12-021-0/+9
| | | | | | their prototype. llvm-svn: 44506
* Warn about unsupported codegen with the diags machinery, giving us:Chris Lattner2007-12-021-1/+4
| | | | | | | | | | | | | 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>) llvm-svn: 44501
* Support initalisers for more than just int-typed static variables.Oliver Hunt2007-12-021-2/+2
| | | | | | | | We now use the CodeGenModule logic for generating the constant initialiser expression, so happily further initialiser fixes should automatically work for statics as well. llvm-svn: 44495
* Implement support for -fwritable-strings and make the code generatorChris Lattner2007-11-281-2/+8
| | | | | | merge string literals when it is not provided. llvm-svn: 44394
* Take 2.Devang Patel2007-10-311-1/+3
| | | | | | | | 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 llvm-svn: 43572
* temporarily revert devang's patch to link in the llvm codegen etc.Chris Lattner2007-10-311-3/+1
| | | | llvm-svn: 43544
* Make target info available to clang code generator.Devang Patel2007-10-311-1/+3
| | | | | | | This is far from complete but this helps clang codegen module make progress. llvm-svn: 43536
* Refactor code into a separate method.Devang Patel2007-10-301-0/+3
| | | | llvm-svn: 43519
* Phase 2 of making the Decl class more lightweight...Steve Naroff2007-09-131-1/+2
| | | | | | | | 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. llvm-svn: 41934
* add the ability to get the llvm function corresponding to a library builtin.Chris Lattner2007-08-311-0/+8
| | | | llvm-svn: 41633
* Implement code generation for constant CFStrings.Anders Carlsson2007-08-211-1/+5
| | | | llvm-svn: 41206
* In "int X,Y;", compile both X and Y.Chris Lattner2007-07-141-0/+1
| | | | llvm-svn: 39848
* implement support for basic codegen of global variables with no initializers.Chris Lattner2007-07-131-1/+3
| | | | llvm-svn: 39795
* Build enough support for aggregates to be able to compile this:Chris Lattner2007-06-221-0/+4
| | | | | | | | | | void test(int A, _Complex float Y) { _Complex float X; X = X; } llvm-svn: 39669
* Hook up global function and variable handling. We can now compile:Chris Lattner2007-06-201-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | int X, bar(int,int,int); short Y; double foo() { return bar(X, Y, 3); } into: @X = external global i32 ; <i32*> [#uses=1] @Y = external global i16 ; <i16*> [#uses=1] define double @foo() { entry: %tmp = load i32* @X ; <i32> [#uses=1] %tmp1 = load i16* @Y ; <i16> [#uses=1] %promote = sext i16 %tmp1 to i32 ; <i32> [#uses=1] %call = tail call i32 @bar( i32 %tmp, i32 %promote, i32 3 ) ; <i32> [#uses=1] %conv = sitofp i32 %call to double ; <double> [#uses=1] ret double %conv } declare i32 @bar(i32, i32, i32) llvm-svn: 39663
* Refactor CodeGenTypes out to CodeGenModule so it can be used for functionsChris Lattner2007-06-161-2/+6
| | | | | | and globals. llvm-svn: 39661
* Split type analysis out to its own file, now the integer constant expr ↵Chris Lattner2007-06-161-0/+4
| | | | | | | | evaluation is ready. llvm-svn: 39660
* Finally bite the bullet and make the major change: split the clang namespaceChris Lattner2007-06-151-4/+5
| | | | | | | | | | | | | out of the llvm namespace. This makes the clang namespace be a sibling of llvm instead of being a child. The good thing about this is that it makes many things unambiguous. The bad things is that many things in the llvm namespace (notably data structures like smallvector) now require an llvm:: qualifier. IMO, libsystem and libsupport should be split out of llvm into their own namespace in the future, which will fix this issue. llvm-svn: 39659
* Add codegen support for NullStmt and CompoundStmt. {;;{};;} is now ours!Chris Lattner2007-05-291-0/+1
| | | | llvm-svn: 39522
* Implement conversion of clang ast types to LLVM types, at least for some trivialChris Lattner2007-05-291-0/+2
| | | | | | cases. llvm-svn: 39519
* Reorganize codegen files.Chris Lattner2007-05-281-0/+41
llvm-svn: 39504
OpenPOWER on IntegriCloud