summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGExprAgg.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* A few more cases for aggregate values.Eli Friedman2008-05-271-0/+10
| | | | llvm-svn: 51596
* Emit memmove, not memcpy, for structure copies; this is unfortunately Eli Friedman2008-05-261-3/+3
| | | | | | | | | | | | | | | | | required for correctness in cases of copying a struct to itself or to an overlapping struct (itself for cases like *a = *a, and overlapping is possible with unions). Hopefully, this won't end up being a perf issue; LLVM *should* be able to optimize memmove to memcpy in a lot of cases, and for small copies the generated code *should* be mostly comparable. (In reality, LLVM is currently horrible at optimizing memmove, but that's a bug, not a fundamental issue.) gcc currently generates wrong code; that's http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32667. llvm-svn: 51566
* Change uses of llvm::Type::isFirstClassType to use the newDan Gohman2008-05-221-1/+1
| | | | | | | | | | | | llvm::Type::isSingleValueType. Currently these two functions have the same behavior, but soon isFirstClassType will return true for struct and array types. Clang may some day want to use of isFirstClassType for some of these some day as an optimization, but it'll require some consideration. llvm-svn: 51446
* Implement codegen for comma operator for structs.Eli Friedman2008-05-201-0/+7
| | | | llvm-svn: 51304
* Fix the emission of expressions like char a[10] = "asdf"; previously, Eli Friedman2008-05-191-2/+9
| | | | | | | | they were causing bad code to be emitted. There are two fixes here: one makes sure we emit a string that is long enough, and one makes sure we properly handle string initialization in init lists. llvm-svn: 51259
* Don't try to take the address of a bitfield; fixes PR2310.Eli Friedman2008-05-121-5/+4
| | | | llvm-svn: 50966
* simplify some builder calls.Chris Lattner2008-05-061-8/+4
| | | | llvm-svn: 50694
* update to follow mainline llvm API change.Chris Lattner2008-04-131-1/+1
| | | | llvm-svn: 49607
* Add support for C++ default arguments, and rework Parse-Sema Chris Lattner2008-04-081-0/+3
| | | | | | | | interaction for function parameters, fixing PR2046. Patch by Doug Gregor! llvm-svn: 49369
* tracking API changes arising from r49277Gabor Greif2008-04-061-3/+3
| | | | llvm-svn: 49279
* Fix PR2049, updating Eli's patch that fixes to mainline. This produces ↵Chris Lattner2008-04-041-14/+115
| | | | | | | | incorrect code, but the codegen doesn't crash. I'll file a bugzilla for the AST being wrong. llvm-svn: 49226
* Since isComplexType() no longer returns true for _Complex integers, the codeChris Lattner2008-04-041-2/+2
| | | | | | generator needs to call isAnyComplexType(). This fixes PR1960. llvm-svn: 49220
* simplify the clang codegen by using the new Builder.CreateStructGEP method.Chris Lattner2008-03-191-9/+2
| | | | llvm-svn: 48534
* Make a major restructuring of the clang tree: introduce a top-levelChris Lattner2008-03-151-0/+337
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
OpenPOWER on IntegriCloud