summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
...
* More work on the constant struct builder. We can now convert the struct to a ↵Anders Carlsson2009-07-251-3/+40
| | | | | | packed struct when necessary. llvm-svn: 77038
* More work on the constant struct builder. We now try to layout all constant ↵Anders Carlsson2009-07-251-6/+19
| | | | | | structs but throw away the result. llvm-svn: 77021
* Update for LLVM API change.Owen Anderson2009-07-2416-201/+206
| | | | llvm-svn: 77012
* Fix a release build warning.Anders Carlsson2009-07-241-1/+1
| | | | llvm-svn: 76985
* More work toward initialization of objectsFariborz Jahanian2009-07-241-3/+12
| | | | | | in constructors. llvm-svn: 76980
* Don't use getLLVMFieldNo for bitfields when constructing the ivar layout ↵Anders Carlsson2009-07-241-4/+8
| | | | | | maps for GC. llvm-svn: 76978
* Check in a half finished new constant struct builder (Obviously not used yet).Anders Carlsson2009-07-242-2/+148
| | | | llvm-svn: 76969
* Fix declaration of obc_enumerationMutation function, for GNU runtime.Daniel Dunbar2009-07-242-8/+11
| | | | llvm-svn: 76959
* Get rid of the size parameter to AppendField. No functionality change.Anders Carlsson2009-07-242-10/+8
| | | | llvm-svn: 76931
* Output UTF-16 string literals independent of host byte order.Daniel Dunbar2009-07-231-9/+24
| | | | | | | | - Steve, can you take a look at this? It seems like this code should live elsewhere, and there is a FIXME about having Sema validates the UTF-8 to UTF-16 conversion. llvm-svn: 76915
* Factor out map lookup for CFString constants.Daniel Dunbar2009-07-231-38/+53
| | | | llvm-svn: 76908
* Don't just store the field/bit field info one field, do it for all fields in ↵Anders Carlsson2009-07-231-12/+6
| | | | | | the union. llvm-svn: 76907
* Fix another thinko.Anders Carlsson2009-07-231-2/+2
| | | | llvm-svn: 76903
* Correct a thinko in bitfield layout code. Fixes PR4611.Anders Carlsson2009-07-231-4/+2
| | | | llvm-svn: 76898
* Simplify, NFC.Daniel Dunbar2009-07-231-8/+7
| | | | llvm-svn: 76897
* Simplify.Daniel Dunbar2009-07-231-5/+4
| | | | llvm-svn: 76885
* We don't need to keep track of the packed alignment, just whether the struct ↵Anders Carlsson2009-07-232-20/+13
| | | | | | is packed or not. Fixes PR4610. llvm-svn: 76884
* Move the LLVM field number for bit fields into the BitFieldInfo structure, ↵Anders Carlsson2009-07-236-41/+46
| | | | | | since it's meaning is completely different than for non-bit fields. llvm-svn: 76882
* Unbreak the CMake buildDouglas Gregor2009-07-231-0/+1
| | | | llvm-svn: 76878
* Shield clang from LLVM API changes, until the dust settles.Daniel Dunbar2009-07-231-1/+3
| | | | llvm-svn: 76862
* Set field info for unions.Anders Carlsson2009-07-231-1/+11
| | | | llvm-svn: 76856
* Use arrays as union padding. Also, since the resulting struct will always ↵Anders Carlsson2009-07-231-7/+10
| | | | | | contain a single element and either a single i8 element or an array of i8s, there's no reason to use a packed struct. llvm-svn: 76854
* Handle zero width bit fields in unions correctly (by ignoring them).Anders Carlsson2009-07-231-0/+9
| | | | llvm-svn: 76847
* Implement union layout support.Anders Carlsson2009-07-232-5/+48
| | | | llvm-svn: 76846
* Check in CGRecordLayoutBuilder which is a reimplementation of the record ↵Anders Carlsson2009-07-234-12/+423
| | | | | | layout code. (Yay, no more packed structs unless absolutely necessary). We currently don't use the layouts being built but that will change when the new code is mature enough :) llvm-svn: 76845
* These IRgen improvements have been done.Daniel Dunbar2009-07-231-18/+0
| | | | | | | Technically we could still do a bit more to avoid deferred generation of statics which we know are used, but I seriously doubt this is important. llvm-svn: 76844
* Use DICompositeType->replaceAllUsesWith().Devang Patel2009-07-221-4/+3
| | | | | | This requires llvm rev. 76769 or higher. llvm-svn: 76770
* Fix a couple recent ABI regressions noticed during code review (fallout from ↵Steve Naroff2009-07-221-2/+2
| | | | | | | | the ObjC type system rewrite). It's unfortunate that the mangling includes the low-level structs. Nevertheless, we need this for binary compatibility with GCC. llvm-svn: 76755
* Make vectorized floating-point comparisons work without crashing.Eli Friedman2009-07-221-1/+1
| | | | llvm-svn: 76726
* Preserve address space information through member accesses, e.g., Mon P Wang2009-07-223-26/+57
| | | | | | | __attribute__((address_space(1))) struct {int arr[ 3 ]; } *p1; ... = p1->arr[2]; // load from address space 1 llvm-svn: 76717
* Update for LLVM API change.Owen Anderson2009-07-213-10/+10
| | | | llvm-svn: 76599
* Update for LLVM API change.Owen Anderson2009-07-211-3/+3
| | | | llvm-svn: 76534
* Move EmitCtorPrologue to CGCXX. Add an assert and FIXMEs.Fariborz Jahanian2009-07-202-33/+33
| | | | llvm-svn: 76498
* Early ir-gen for constructor prologue. This is on going.Fariborz Jahanian2009-07-202-0/+37
| | | | llvm-svn: 76493
* Remove an apparently unused header.Mike Stump2009-07-201-1/+0
| | | | llvm-svn: 76473
* Catch another trivial case where we can avoid emitting a separate return blcok.Daniel Dunbar2009-07-191-4/+5
| | | | llvm-svn: 76365
* Detect when the current generation point is unreachable after emittingDaniel Dunbar2009-07-191-3/+12
| | | | | | | | | | expressions. - This generally catches the important case of noreturn functions. - With the last two changes, we are down to 152 unreachable blocks emitted on 403.gcc, vs the 1805 we started with. llvm-svn: 76364
* Fix thinko.Daniel Dunbar2009-07-192-4/+8
| | | | llvm-svn: 76362
* Avoid generation of dead code in a few more situations.Daniel Dunbar2009-07-194-15/+66
| | | | | | | | | | | | | - Emit variable declarations as "simple", we want to avoid forcing the creation of a dummy basic block, but still need to make the variable available for later use. - With that, we can now skip IRgen for other unreachable statements (which don't define a label). - Anders, I added two fixmes on calls to EmitVLASize, can you check them? llvm-svn: 76361
* Rename NextOffset to DataSize, which better matches the Itanium C++ ABIAnders Carlsson2009-07-181-1/+1
| | | | llvm-svn: 76339
* Revert r75641.Anders Carlsson2009-07-186-5/+6
| | | | llvm-svn: 76327
* Remove ObjCQualifiedInterfaceType:-)Steve Naroff2009-07-182-7/+0
| | | | llvm-svn: 76321
* fix objc codegen to not have its own list of things that eventually get into ↵Chris Lattner2009-07-174-64/+33
| | | | | | | | llvm.used, just populate CGM's list directly. llvm-svn: 76266
* Per offline discussion with Steve Naroff, add back Type::getAsXXXType() methodsTed Kremenek2009-07-1711-27/+27
| | | | | | | | | until Doug Gregor's Type smart pointer code lands (or more discussion occurs). These methods just call the new Type::getAs<XXX> methods, so we still have reduced implementation redundancy. Having explicit getAsXXXType() methods makes it easier to set breakpoints in the debugger. llvm-svn: 76193
* Replaced Type::getAsLValueReferenceType(), Type::getAsRValueReferenceType(), ↵Ted Kremenek2009-07-178-16/+16
| | | | | | Type::getAsMemberPointerType(), Type::getAsTagType(), and Type::getAsRecordType() with their Type::getAs<XXX> equivalents. llvm-svn: 76139
* ir-gen for --/++ operators of objc object pointersFariborz Jahanian2009-07-161-1/+19
| | | | | | in 32bit abi. llvm-svn: 76109
* Hook in s390x stuff into clangAnton Korobeynikov2009-07-161-0/+77
| | | | llvm-svn: 76099
* Add member template 'Type::getAs<T>', which converts a Type* to a respective T*.Ted Kremenek2009-07-165-11/+11
| | | | | | | | | | | | | | | | | | | | | This method is intended to eventually replace the individual Type::getAsXXXType<> methods. The motivation behind this change is twofold: 1) Reduce redundant implementations of Type::getAsXXXType() methods. Most of them are basically copy-and-paste. 2) By centralizing the implementation of the getAs<Type> logic we can more smoothly move over to Doug Gregor's proposed canonical type smart pointer scheme. Along with this patch: a) Removed 'Type::getAsPointerType()'; now clients use getAs<PointerType>. b) Removed 'Type::getAsBlockPointerTypE()'; now clients use getAs<BlockPointerType>. llvm-svn: 76098
* Update for LLVM API change.Owen Anderson2009-07-161-5/+5
| | | | llvm-svn: 76090
* use CreateRuntimeVariable to get __CFConstantStringClassReferenceChris Lattner2009-07-161-11/+6
| | | | | | | instead of doing it manually (which might end up getting auto-renamed), fixing a FIXME. rdar://7065446 llvm-svn: 76079
OpenPOWER on IntegriCloud