summaryrefslogtreecommitdiff
path: root/clang/CodeGen/CodeGenFunction.h
AgeCommit message (Collapse)Author
2008-03-15Make a major restructuring of the clang tree: introduce a top-levelChris Lattner
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
2008-02-29make include guards more unique.Chris Lattner
llvm-svn: 47754
2008-02-26Implement codegen for the following static var init.Lauro Ramos Venancio
void g() { static char a[10]; static char *b = a; } Now we can compile wget! llvm-svn: 47627
2008-02-09Expose the logic for field address codegen; it is needed for aggregate Eli Friedman
initializers, and I don't want to duplicate the bitfield-handling code. (I'll send a patch for aggregate initializers to the mailing list sometime soon.) llvm-svn: 46904
2008-02-05Add code generation for inline asm statements.Anders Carlsson
llvm-svn: 46750
2008-01-30Make sure to emit all the arguments to a function call. This fixes the Eli Friedman
codegen of calls to functions without a prototype and varargs functions, including printf. llvm-svn: 46543
2008-01-22Implement bitfield write.Lauro Ramos Venancio
llvm-svn: 46258
2008-01-22Implement bitfield read.Lauro Ramos Venancio
llvm-svn: 46257
2008-01-17Implement basic overload support via a new builtin, __builtin_overload.Nate Begeman
__builtin_overload takes 2 or more arguments: 0) a non-zero constant-expr for the number of arguments the overloaded functions will take 1) the arguments to pass to the matching overloaded function 2) a list of functions to match. The return type of __builtin_overload is inferred from the function whose args match the types of the arguments passed to the builtin. For example: float a; float sinf(float); int sini(int); float b = __builtin_overload(1, a, sini, sinf); Says that we are overloading functions that take one argument, and trying to pass an argument of the same type as 'a'. sini() does not match since it takes and argument of type int. sinf does match, so at codegen time this will turn into float b = sinf(a); llvm-svn: 46132
2007-12-30Allow implicit casts during arithmetic for OCUVector operationsNate Begeman
Add codegen support and test for said casts. llvm-svn: 45443
2007-12-29Don't attribute in file headers anymore. See llvmdev for theChris Lattner
discussion of this change. llvm-svn: 45410
2007-12-29Enable CodeGen for member expressions based on call expressions returning ↵Christopher Lamb
aggregate types. This enables expressions like 'foo().member.submember'. llvm-svn: 45395
2007-12-15We now support all MMX intrinsics. SSE intrinsics are next.Anders Carlsson
llvm-svn: 45062
2007-12-10Add EmitShuffleVector helper method.Anders Carlsson
llvm-svn: 44806
2007-12-09Move target specific builtin IDs to TargetBuiltins.h so that they can be ↵Anders Carlsson
used by CGBuiltin.cpp llvm-svn: 44748
2007-12-02convert the rest of the stderr users in codegen to use diagnostics.Chris Lattner
llvm-svn: 44503
2007-12-02move unsupported warning into a centralized place.Chris Lattner
llvm-svn: 44502
2007-11-01Rename classes and collections that maintain record layout information.Devang Patel
Now, at AST level record info is maintained by ASTRecordLayout class. Now, at code gen level record info is maintained by CGRecordLayout class. llvm-svn: 43619
2007-10-24Constify methods and reuse RecordOrganizer object.Devang Patel
llvm-svn: 43284
2007-10-23Begin struct layout work.Devang Patel
llvm-svn: 43236
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? llvm-svn: 43074
2007-10-17Generate code for static variables that don't have initializers. Also, ↵Anders Carlsson
report an error if a static initializer is not constant. llvm-svn: 43058
2007-10-09Use LLVMFoldingBuilderDevang Patel
llvm-svn: 42807
2007-10-09Fix comment. Describe what it is, instead of how it is used.Devang Patel
llvm-svn: 42791
2007-10-08Code gen case statement ranges.Devang Patel
llvm-svn: 42766
2007-10-04switch statement code gen.Devang Patel
llvm-svn: 42616
2007-09-28Do not codegen dummy block.Devang Patel
Dummy block is an empty block with no predecessors. llvm-svn: 42451
2007-08-31Generalize RValue to handle complex better, generalize EmitCompoundStmt toChris Lattner
support any sort of expr, add a new EmitAnyExpr routine. llvm-svn: 41660
2007-08-31implement code generation for scalar stmt expressions.Chris Lattner
llvm-svn: 41656
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. llvm-svn: 41634
2007-08-31add the ability to get the llvm function corresponding to a library builtin.Chris Lattner
llvm-svn: 41633
2007-08-26move EmitAggregateCopy into AggExprEmitterChris Lattner
llvm-svn: 41472
2007-08-26remove dead codeChris Lattner
llvm-svn: 41470
2007-08-26remove dead protosChris Lattner
llvm-svn: 41469
2007-08-26eliminate EmitAnyExpr, inlining it and simplifying it into its only caller.Chris Lattner
llvm-svn: 41468
2007-08-26remove ConvertScalarValueToBool.Chris Lattner
llvm-svn: 41447
2007-08-26refactor some code to expose compex->scalar conversion to CGFChris Lattner
llvm-svn: 41445
2007-08-26be slightly more volatile correctChris Lattner
llvm-svn: 41444
2007-08-26Omit EmitConversionChris Lattner
llvm-svn: 41438
2007-08-26refactor scalar conversions out into CGExprScalar.cppChris Lattner
llvm-svn: 41433
2007-08-26remove a bunch of dead codeChris Lattner
llvm-svn: 41418
2007-08-24completely refactor codegen of scalar expressions out into its own ↵Chris Lattner
CGExprScalar.cpp file. This patch temporarily breaks compound assignment operators, but greatly simplifies many things. llvm-svn: 41355
2007-08-23implement passing of complex and aggregates through call args.Chris Lattner
llvm-svn: 41344
2007-08-21Implement parsing and code generation of Objective-C string literals.Anders Carlsson
llvm-svn: 41238
2007-08-21move EmitLoadOfComplex/EmitStoreOfComplex into ComplexExprEmitter.Chris Lattner
llvm-svn: 41236
2007-08-21reimplement support for complex comparisons, add support for integer complex ↵Chris Lattner
compares. llvm-svn: 41231
2007-08-21Split complex arithmetic codegen out from aggregate codegen.Chris Lattner
This means that we get rid of tons of intermediate allocas. For example: void foo(double _Complex a, double _Complex b) { a = b+a+a; } this used to have 4 temporary allocas, now it has zero of them. This also simplifies the individual visitor methods because they now can all operate on real/imag pairs instead of having to load/store all over the place. llvm-svn: 41217
2007-08-21reimplement addition of complex numbers.Chris Lattner
llvm-svn: 41215
2007-08-21switch aggregate expr codegen to use a visitor to localize most of the nasty Chris Lattner
details in its own file. llvm-svn: 41213
2007-08-20Fix array->pointer decay. This unbreaks test/CodeGen/array.cChris Lattner
llvm-svn: 41202