summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix transposed optional / required in Objective-C metadata (GNUstep runtime)David Chisnall2012-08-231-8/+8
| | | | | | Patch by Niels Grewe! llvm-svn: 162441
* Attempt to fix clang bootstrap (broken by r162425).Eli Friedman2012-08-231-2/+22
| | | | llvm-svn: 162440
* Use the alignment from lvalue emission to more accurately compute the alignmentEli Friedman2012-08-232-95/+147
| | | | | | | of a pointer for builtin emission, instead of just depending on the type of the pointee. <rdar://problem/11314941>. llvm-svn: 162425
* [ms-inline asm] Start sending non-simple inline asms to the AsmParser.Chad Rosier2012-08-221-2/+0
| | | | | | | The parser still can't handle all cases, so fall back to emitting a simple MSAsmStmt if we get into trouble. llvm-svn: 162382
* Reduce duplicated hash map lookups.Benjamin Kramer2012-08-222-14/+6
| | | | llvm-svn: 162361
* [driver] Add support for the --param ssp-buffer-size= driver option.Chad Rosier2012-08-211-0/+1
| | | | | | PR9673 llvm-svn: 162285
* [asan] If we are compiling with ASan, add metadata indicating dynamically ↵Kostya Serebryany2012-08-211-0/+12
| | | | | | initialized globals. Patch by Reid Watson, reviewed by Richard Smith llvm-svn: 162259
* When performing a trivial copy of a C++ type, we must be careful notJohn McCall2012-08-211-2/+2
| | | | | | | | | | | to overwrite objects that might have been allocated into the type's tail padding. This patch is missing some potential optimizations where the destination is provably a complete object, but it's necessary for correctness. Patch by Jonathan Sauer. llvm-svn: 162254
* Screw around with ObjCRuntime some more, changing theJohn McCall2012-08-212-8/+43
| | | | | | | | diagnostics for bad deployment targets and adding a few more predicates. Includes a patch by Jonathan Schleifer to enable ARC for ObjFW. llvm-svn: 162252
* Fix a pair of bugs relating to properties in ARC.John McCall2012-08-201-1/+10
| | | | | | | | | | | | | | | | | | | | First, when synthesizing an explicitly strong/retain/copy property of Class type, don't pretend during compatibility checking that the property is actually assign. Instead, resolve incompatibilities by secretly changing the type of *implicitly* __unsafe_unretained Class ivars to be strong. This is moderately evil but better than what we were doing. Second, when synthesizing the setter for a strong property of non-retainable type, be sure to use objc_setProperty. This is possible when the property is decorated with the NSObject attribute. This is an ugly, ugly corner of the language, and we probably ought to deprecate it. The first is rdar://problem/12039404; the second was noticed by inspection while fixing the first. llvm-svn: 162244
* Reapply:Eric Christopher2012-08-202-14/+31
| | | | | | | | | | | | | | | Author: Eric Christopher <echristo@apple.com> Date: Thu Aug 16 23:50:46 2012 +0000 Add some caching here for the builtin types. rdar://12117935 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162066 91177308-0d34-0410-b5e6-96231b3b80d8 after fixing a thinko. llvm-svn: 162243
* Reapply:Eric Christopher2012-08-171-6/+8
| | | | | | | | Make isa part of objc_object at metadata generation time. Noticed on inspection. llvm-svn: 162145
* Temporarily revert r162066 and r162062 to see if it brings the gdbEric Christopher2012-08-172-32/+15
| | | | | | bots back. llvm-svn: 162080
* Fix undefined behavior in debug info emission: operator* on WeakVH returns aRichard Smith2012-08-171-17/+24
| | | | | | | | reference, so &* on an empty WeakVH binds a reference to a dereferenced null pointer. So don't do that; we have a perfectly good implicit conversion to Value*. llvm-svn: 162079
* Add some caching here for the builtin types.Eric Christopher2012-08-162-15/+30
| | | | | | rdar://12117935 llvm-svn: 162066
* Make isa part of objc_object at metadata generation time.Eric Christopher2012-08-161-6/+8
| | | | | | Noticed on inspection. llvm-svn: 162062
* Convert loads and stores of vec3 to vec4 to achieve better code generation. ↵Tanya Lattner2012-08-161-0/+80
| | | | | | Add test case. llvm-svn: 162002
* Devirtualize calls on glvalues produced by class member access expressions.Richard Smith2012-08-151-1/+8
| | | | | | Based on a patch by Yin Ma! llvm-svn: 161998
* Fix for PR#13606: http://llvm.org/bugs/show_bug.cgi?id=13606John Criswell2012-08-151-1/+1
| | | | | | | Changed the alignment of an LValue to be 64 bits so that we can handle alignment values up to half of a 64-bit address space. llvm-svn: 161971
* [ms-inline asm] Add support for clobbers in CodeGen.Chad Rosier2012-08-151-1/+23
| | | | | | | This is a reapplication of r161914 now that the scoping issue has been resolved in r161966. llvm-svn: 161967
* Revert this to try to bring the i386 bots back.Eric Christopher2012-08-151-23/+1
| | | | llvm-svn: 161931
* [ms-inline asm] Add support for clobbers in CodeGen.Chad Rosier2012-08-151-1/+23
| | | | llvm-svn: 161914
* irgen: inline code for several of complex builtinFariborz Jahanian2012-08-141-0/+29
| | | | | | calls. // rdar://8315199 llvm-svn: 161891
* Avoid using i64 types for vld1q_lane/vst1q_lane intrinsics.Bob Wilson2012-08-141-4/+36
| | | | | | | | | The backend has to legalize i64 types by splitting them into two 32-bit pieces, which leads to poor quality code. If we produce code for these intrinsics that uses one-element vector types, which can live in Neon vector registers without getting split up, then the generated code is much better. Radar 11998303. llvm-svn: 161879
* ARM: enable struct byval for AAPCS-VFP.Manman Ren2012-08-131-7/+4
| | | | | | rdar://9877866 llvm-svn: 161790
* Factor out computation of whether a typeid's expression is potentiallyRichard Smith2012-08-131-9/+3
| | | | | | evaluated into a CXXTypeid member function. No functionality change. llvm-svn: 161779
* This is always going to be true so the cast isn't necessary.Eric Christopher2012-08-131-5/+3
| | | | llvm-svn: 161744
* Add comments for turning on byvalManman Ren2012-08-101-0/+2
| | | | llvm-svn: 161702
* Don't emit an invoke whose normal destination is a landingpad. Fixes testEli Friedman2012-08-101-19/+2
| | | | | | regression on test/CodeGenObjC/2008-10-3-EhValue.m on non-Darwin targets. llvm-svn: 161700
* ARM: enable struct byval for AAPCS.Manman Ren2012-08-101-3/+1
| | | | | | | rdar://9877866 PR://13350 llvm-svn: 161694
* Decrementing std::string::end is not portable, use array access instead.Joerg Sonnenberger2012-08-101-1/+1
| | | | llvm-svn: 161659
* [ms-inline asm] Use the new Inline Asm Non-Standard Dialect attribute.Chad Rosier2012-08-101-0/+1
| | | | llvm-svn: 161642
* Fix AAPCS ABI. I can't actually test this, but it restores the behavior ↵Eli Friedman2012-08-091-9/+12
| | | | | | from before r159168. PR13562. llvm-svn: 161554
* clang support for Bitrig (an OpenBSD fork); patch by David Hill.Eli Friedman2012-08-081-0/+1
| | | | llvm-svn: 161546
* [ms-inline asm] Add basic codegen support for simple asm stmts. Currently,Chad Rosier2012-08-081-0/+15
| | | | | | only machine specific clobbers are modeled. llvm-svn: 161524
* Fix an assertion failure with a C++ constructor initializing aEli Friedman2012-08-083-31/+9
| | | | | | member of reference type in an anonymous struct. PR13154. llvm-svn: 161473
* objc-arc: set nonlazybind attribute on objc_retain/Fariborz Jahanian2012-08-071-2/+6
| | | | | | | objc_release for performance for these most often called APIs. // rdar://12040837 llvm-svn: 161448
* If we don't have a complete type for the array type yet either thenEric Christopher2012-08-071-1/+4
| | | | | | | | just let the alignment be zero. PR13531 llvm-svn: 161379
* Remove some unintended changes from my last patch.Eric Christopher2012-08-071-3/+2
| | | | llvm-svn: 161369
* Make sure when we get the replacement type for a template argumentEric Christopher2012-08-071-5/+14
| | | | | | | | that we attach the lost qualifiers. Fixes rdar://11882155 llvm-svn: 161368
* Add __builtin_readcyclecounter() to produce the @llvm.readcyclecounter() ↵Hal Finkel2012-08-051-0/+4
| | | | | | intrinsic. llvm-svn: 161310
* Simplify code, no functionality change.Benjamin Kramer2012-08-041-6/+2
| | | | llvm-svn: 161303
* Fix the name of this variable.Eric Christopher2012-08-041-4/+4
| | | | llvm-svn: 161287
* Update comment to accurately reflect what should happen.Eric Christopher2012-08-041-1/+1
| | | | llvm-svn: 161286
* Make sure we don't emit IR for unused EH cleanups. PR13359.Eli Friedman2012-08-021-2/+6
| | | | llvm-svn: 161148
* When devirtualizing the conversion to a virtual base subobject,John McCall2012-08-011-57/+64
| | | | | | | | | | | don't explode if the offset we get is zero. This can happen if you have an empty virtual base class. While I'm at it, remove an unnecessary block from the IR-generation of the null-check, mark the eventual GEP as inbounds, and generally prettify. llvm-svn: 161100
* Remove deprecated getNameAsCString methods.Benjamin Kramer2012-07-311-1/+1
| | | | llvm-svn: 161044
* Introduce new queries on ObjCRuntime for how to interpret subscriptsJohn McCall2012-07-311-2/+5
| | | | | | | | on object pointers and whether pointer arithmetic on object pointers is supported. Make ObjFW interpret subscripts as pseudo-objects. Based on a patch by Jonathan Schleifer. llvm-svn: 161028
* Handle functions with struct arguments or return types and the regparmRafael Espindola2012-07-313-40/+130
| | | | | | | | | | | | | | attribute. It is a variation of the x86_64 ABI: * A struct returned indirectly uses the first register argument to pass the pointer. * Floats, Doubles and structs containing only one of them are not passed in registers. * Other structs are split into registers if they fit on the remaining ones. Otherwise they are passed in memory. * When a struct doesn't fit it still consumes the registers. llvm-svn: 161022
* Don't crash *or* insert a bogus autorelease when emitting aJohn McCall2012-07-312-1/+5
| | | | | | this-adjustment thunk in ARC++. llvm-svn: 161014
OpenPOWER on IntegriCloud