aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen
AgeCommit message (Collapse)Author
2009-05-03PR4134: Implement __builtin_extract_return_addr.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70794 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-03Fix comment to account for r70786.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70789 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-03PR4133: fix always_inline implementation to be consistent with gcc.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70786 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-03Make codegen for constructors work again.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70785 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-03assert that mangleName is not called for C++ ctors/dtors.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70783 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-03It turns out BuildAggrIvarLayout wasn't even using the shadow struct,Daniel Dunbar
just computing it! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70779 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-03Lift common subexpression, remove dead "base" variable.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70778 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-03Factor out BuildAggrIvarRecordLayout routine.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70777 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-03Lift out GetGCAttrTypeForType routine.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70776 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-03Add constructors for GC_IVAR and SKIP_SCAN, tighten up uses.Daniel Dunbar
Lift up a size calculation and note some asymmetries. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70775 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-03Normalize style, remove a dead assert.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70771 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-03Use ASTRecordLayout for computing ivar offsets instead of shadowDaniel Dunbar
struct. - We still need to do more lookup than necessary because ivars don't live in a reasonable DeclContext. - The only remaining client of the interface shadow struct is the ivar layout bitmap. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70756 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-03Add a ComputeIvarBaseOffset overload taking an implementationDaniel Dunbar
decl. Only this routine will be suitable for computing the offset of a synthesized ivar. - No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70696 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-03Compute Objective-C metadata size information from the record layout,Daniel Dunbar
not the shadow structure. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70691 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-03look at the right operand when increasing the size of an asm output,Chris Lattner
this fixes http://llvm.org/bugs/show_bug.cgi?id=3373#c20 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70685 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-03Remove unused argument.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70684 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-03Coalesce the ivar offset calculation further.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70683 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-03don't shadow 'i'Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70680 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-03add support for tying asm operands where the result is smaller thanChris Lattner
the input. This is part of PR3373. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70677 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-03implement support for asm outputs targetting non-simple lvalue destinationsChris Lattner
like bitfields. incidentally llvm-gcc crashes on this sort of thing also. :) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70675 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-03Use type from ivar instead of from shadow struct field.Daniel Dunbar
- No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70674 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-03handle codegen of asms where a small input is tied to a large output.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70672 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-03refactor some code to get the input/output constraint info beforeChris Lattner
processing the outputs, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70671 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-02When creating a dwarf record type for an objc interface, make sure to propagateChris Lattner
the runtime version number onto it, so that the debugger knows it's an objc interface, not a C struct. rdar://6848435 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70618 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-02capture whether optimizations are enabled or not in debug infoChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70617 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-02encode the version of the objc runtime into the dwarf compile unit. ↵Chris Lattner
rdar://6848435, several other fixes coming. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70616 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-01We can now call member functions where the base is a pointer.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70579 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-01Don't assert when we think we need copy/dispose, but don't need them.Mike Stump
Radar 6838889 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70525 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-01Don't use indirect memory destinations for inline asm. Fixes 6841383.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70523 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-30Remove a warning when this file is compiled optimized.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70518 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-30API for message dispatch of methods returning floatsFariborz Jahanian
to match gcc's closely. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70493 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-30Fix for PR4108: be a bit looser with the casts that we accept in Eli Friedman
constant initializers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70483 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-30fix i128 to return in 2 64-bit registers (rax/rdx on x86-64)Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70481 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-30initial support for __[u]int128_t, which should be basicallyChris Lattner
compatible with VC++ and GCC. The codegen/mangling angle hasn't been fully ironed out yet. Note that we accept int128_t even in 32-bit mode, unlike gcc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70464 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-29Undid setting of the flag for msg_Send for 32bit code gen.Fariborz Jahanian
It seems to effect code gen. Add a FIXME instead. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70423 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-29Export lazy references of .objc_class_name of class namesFariborz Jahanian
referenced in a category implementation meta-data (Next objc 32bit abi). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70407 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-29Type of msgSend message dispatch API is a vararg.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70404 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-28Improve compatibility with GCC regarding inline semantics in GNU89Douglas Gregor
mode and in the presence of __gnu_inline__ attributes. This should fix both PR3989 and PR4069. As part of this, we now keep track of all of the attributes attached to each declaration even after we've performed declaration merging. This fixes PR3264. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70292 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-27While generating debug info ignore unnamed fields.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70266 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-27x86-32 ABI: Fix crash on return of structure with flexible arrayDaniel Dunbar
member. Also, spell bitfield more consistently as bit-field. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70220 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-26Implement function-try-blocks. However, there's a very subtle bug that I ↵Sebastian Redl
can't track down. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70155 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-26Remove getIntegerConstantExprValue in favor of using EvaluateAsInt.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70145 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-26pull operands names "[foo]" into ConstraintInfo.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70136 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-26pull the constraint string into the ConstraintInfo structChris Lattner
instead of passing it around in addition to it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70135 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-26change TargetInfo::ConstraintInfo to be a struct that containsChris Lattner
the enum along with some other data. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70114 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-26split ObjC and C++ Statements out into their own headers.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70105 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-26When calling the cleanup function specified by __attribute__((cleanup)), ↵Anders Carlsson
make sure to bitcast the argument so it has the same type as the first argument of the cleanup function. Fixes <rdar://problem/6827047>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70098 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-25"This fixes message sends to super in a way that both works with real code ↵Chris Lattner
and passes the test in the test suite. It also fixes a crash when using recent versions of GNU libobjc and compiling modules that do not contain any constant strings but do contain a declaration of the constant string class and possible some other corner cases (thanks to Pete French for providing me with a test case for that one)." Patch by David Chisnall! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70093 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-25Minor simplification.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70091 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-25fix PR4067: [Linux kernel] cannot aggregate codegen stmtexpr as lvalue Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70067 91177308-0d34-0410-b5e6-96231b3b80d8