- Oct 17, 2012
-
-
David Blaikie authored
This is consistent/interoperable with GCC 4.7 (& __cxa_deleted_function isn't present in 4.4 - not sure when it got added, but you'll need something with that function available for this to work). llvm-svn: 166069
-
Derek Schuff authored
Because PNaCl bitcode must be target-independent, it uses some different bitcode representations from other targets (e.g. byval and sret for structures). This means that without additional type information, it cannot meet some native ABI requirements for some targets (e.g. passing structures containing unions by value on x86-64). To allow generation of code which uses the correct native ABIs, we also support triples such as x86_64-nacl, which uses target-dependent IR (as opposed to le32-nacl, which uses byval and sret). To allow interoperation between the two types of code, this patch adds a calling convention attribute to be used in code compiled with the target-dependent triple, which will generate code using the le32-style bitcode. This calling convention does not need to be explicitly supported in the backend because it determines bitcode representation rather than native conventions (the backend just needs to undersand how to handle byval and sret for the Native Client OS). This patch implements __attribute__((pnaclcall)) to generate calls in bitcode according to the le32 bitcode conventions, an attribute which is accepted by any Native Client target, but issues a warning otherwise. llvm-svn: 166065
-
- Oct 16, 2012
-
-
Manman Ren authored
We generalize r166040 to handle ABI alignment issues for all types. rdar://12439123 llvm-svn: 166052
-
Manman Ren authored
We expand varargs in clang and the call site is handled in the back end, it is hard to match exactly how illegal vectors are handled in the backend. Therefore, we legalize the illegal vector types in clang: if (Size <= 32), legalize to i32. if (Size == 64), legalize to v2i32. if (Size == 128), legalize to v4i32. if (Size > 128), use indirect. rdar://12439123 llvm-svn: 166043
-
Manman Ren authored
We create an aligned temporary space and copy the content over from ap.cur to the temporary space. This is necessary if the natural alignment of the type is greater than the ABI alignment. rdar://12439123 llvm-svn: 166040
-
Joerg Sonnenberger authored
don't try the normal GetOrCreateLLVM. The latter could drop the weak atrtibute on the second reference, if there is no explicit declaration of the aliasee. llvm-svn: 166032
-
David Chisnall authored
metadata. llvm-svn: 166023
-
Alexey Samsonov authored
if (CGM.getModuleDebugInfo()) DebugInfo = CGM.getModuleDebugInfo() into a call: maybeInitializeDebugInfo(); This is a simplification for a possible future fix of PR13942. llvm-svn: 166019
-
Bill Wendling authored
Use the Attributes::get method which takes an AttrVal value directly to simplify the code a bit. No functionality change. llvm-svn: 166010
-
Daniel Dunbar authored
llvm-svn: 165988
-
- Oct 15, 2012
-
-
Nico Weber authored
See PR14013. llvm-svn: 165962
-
Bill Wendling authored
Move the Attributes::Builder outside of the Attributes class and into its own class named AttrBuilder. No functionality change. llvm-svn: 165961
-
Kostya Serebryany authored
[asan] make AddressSanitizer to be a FunctionPass instead of ModulePass. clang part: for FunctionPass we need to run asan at a different point, otherwise it will run before inlining llvm-svn: 165937
-
Bill Wendling authored
llvm-svn: 165925
-
Bill Wendling authored
Convert the uses of the Attributes class over to the new format. The Attributes::get method call now takes an LLVM context so that the attributes object can be uniquified and stored. llvm-svn: 165918
-
Richard Smith authored
fails to return a value, to make debugging this issue easier. llvm-svn: 165914
-
- Oct 14, 2012
-
-
Bill Wendling authored
llvm-svn: 165900
-
Bill Wendling authored
llvm-svn: 165888
-
Nico Weber authored
Eli discovered that __noop's sema behavior also needs some love. I filed PR14081 for that and intend to improve it. llvm-svn: 165886
-
- Oct 13, 2012
-
-
Nico Weber authored
llvm-svn: 165885
-
Eli Friedman authored
Patch by Jeremiah Zanin. llvm-svn: 165849
-
Richard Smith authored
from a floating-point type where the source value is not in the range of representable values of the destination type. llvm-svn: 165843
-
- Oct 12, 2012
-
-
Bill Schmidt authored
For 64-bit PowerPC SVR4, an aggregate containing only one floating-point field (float, double, or long double) must be passed in a register as though just that field were present. This patch addresses the issue during Clang code generation by specifying in the ABIArgInfo for the argument that the underlying type is passed directly in a register. The included test case verifies flat and nested structs for the three data types. llvm-svn: 165816
-
- Oct 11, 2012
-
-
Nadav Rotem authored
llvm-svn: 165741
-
Derek Schuff authored
llvm-svn: 165731
-
Micah Villmow authored
Add in the first iteration of support for llvm/clang/lldb to allow variable per address space pointer sizes to be optimized correctly. llvm-svn: 165726
-
Derek Schuff authored
with x86/ARM architecture llvm-svn: 165722
-
Derek Schuff authored
and Native Client llvm-svn: 165715
-
Nico Weber authored
llvm-svn: 165710
-
Fariborz Jahanian authored
in a category class method, don't read 'isa' pointer. Instead, save the desired OBJC_METACLASS_$_ClassName in __DATA,__objc_superrefs and read that without reading any isa pointers. // rdar://12459358 llvm-svn: 165674
-
- Oct 10, 2012
-
-
Jordan Rose authored
This more accurately reflects its use: this flag is set when a method matches the getter or setter name for a property in the same class, and does not actually specify whether or not the definition of the method will be synthesized (either implicitly or explicitly with @synthesize). This renames the setter and backing field as well, and changes the (soon-to-be-obsolete?) XML dump format to use 'property_accessor' instead of 'synthesized'. llvm-svn: 165626
-
Chandler Carruth authored
The issue arises when coercing to/from types of different sizes. We need to be certain that the allocation on either end has sufficient room for the coerced type. When it doesn't, we need to make room, copy across, and then proceed. PR11905 handled the case of storing function arguments back into allocas in the function prolog, this patch handles the case of setting up the function arguments in a call expression. This is actually significantly simpler than the fix for PR11905. It ends up being a trivial change to create a temporary alloca when the source is too small and memcpy across. This should preserve the compile-time fast-isel benefits of doing gep+load sequences and avoiding FCAs. Reviewed by Benjamin and Evgeniy (who fixed PR11905). llvm-svn: 165615
-
Bill Wendling authored
namespace. Use the attribute's enum value instead. No functionality change intended. llvm-svn: 165611
-
Bill Wendling authored
Have 'addFnAttr' take the attribute enum value. Then have it build the attribute object and add it appropriately. No functionality change. llvm-svn: 165596
-
Richard Smith authored
llvm-svn: 165584
-
Richard Smith authored
llvm-svn: 165583
-
Richard Smith authored
-fcatch-undefined-behavior: store the type name directly at the end of a type descriptor. 5% binary size reduction due to fewer relocations. llvm-svn: 165572
-
- Oct 09, 2012
-
-
Richard Smith authored
llvm-svn: 165536
-
Bill Wendling authored
opaque layer is responsible for knowing where that specific attribute is stored. llvm-svn: 165489
-
- Oct 08, 2012
-
-
Micah Villmow authored
llvm-svn: 165395
-