- Jun 18, 2011
-
-
NAKAMURA Takumi authored
llvm-svn: 133342
-
John McCall authored
where mismatched semantics can cause undefined behavior. llvm-svn: 133341
-
John McCall authored
specifying that retain/release/autorelease/retainCount are forbidden, plus a section talking about the behavior of dealloc. llvm-svn: 133340
-
Nick Lewycky authored
llvm-svn: 133339
-
Cameron Zwarich authored
type's bitwidth matches the (allocated) size of the alloca. This severely pessimizes vector scalar replacement when the only vector type being used is something like <3 x float> on x86 or ARM whose allocated size matches a <4 x float>. I hope to fix some of the flawed assumptions about allocated size throughout scalar replacement and reenable this in most cases. llvm-svn: 133338
-
Chris Lattner authored
for pre-2.9 bitcode files. We keep x86 unaligned loads, movnt, crc32, and the target indep prefetch change. As usual, updating the testsuite is a PITA. llvm-svn: 133337
-
Cameron Zwarich authored
alloca. Fixes part of <rdar://problem/9580800>. llvm-svn: 133336
-
Cameron Zwarich authored
unless ScalarKind is Vector. llvm-svn: 133335
-
Jakob Stoklund Olesen authored
This should fix the Linux buildbots. llvm-svn: 133334
-
Jakob Stoklund Olesen authored
Reuse the CodeGenRegBank DenseMap in a few places that would build their own or use linear search. llvm-svn: 133333
-
Jakob Stoklund Olesen authored
Targets that need to change the default allocation order should use the AltOrders mechanism instead. See the X86 and ARM targets for examples. The allocation_order_begin() and allocation_order_end() methods have been replaced with getRawAllocationOrder(), and there is further support functions in RegisterClassInfo. It is no longer possible to insert arbitrary code into generated register classes. This is a feature. llvm-svn: 133332
-
Jakob Stoklund Olesen authored
llvm-svn: 133331
-
Chandler Carruth authored
deducing template parameter types. Recently Clang began enforcing the more strict checking that the argument type and the deduced function parameter type (after substitution) match, but that only consideres qualification conversions. One problem with this patch is that we check noreturn conversions and qualification conversions independently. If a valid conversion would require *both*, perhaps interleaved with each other, it will be rejected. If this actually occurs (I'm not yet sure it does) and is in fact a problem (I'm not yet sure it is), there is a FIXME to implement more intelligent conversion checking. However, this step at least allows Clang to resume accepting valid code we're seeing in the wild. llvm-svn: 133327
-
Jakob Stoklund Olesen authored
This slightly changes the GPR allocation order on Darwin where R9 is not a callee-saved register: Before: %R0 %R1 %R2 %R3 %R12 %R9 %LR %R4 %R5 %R6 %R8 %R10 %R11 After: %R0 %R1 %R2 %R3 %R9 %R12 %LR %R4 %R5 %R6 %R8 %R10 %R11 llvm-svn: 133326
-
Jakob Stoklund Olesen authored
llvm-svn: 133325
-
Galina Kistanova authored
llvm-svn: 133324
-
Argyrios Kyrtzidis authored
[arcmt] Fix the ARC migrator. -arcmt-modify requires running before the initialization of SourceManager because it is going to modify the input file. llvm-svn: 133323
-
Argyrios Kyrtzidis authored
llvm-svn: 133322
-
Jakob Stoklund Olesen authored
llvm-svn: 133321
-
Jakob Stoklund Olesen authored
A register class can define AltOrders and AltOrderSelect instead of defining method protos and bodies. The AltOrders lists can be defined with set operations, and TableGen can verify that the alternative allocation orders only contain valid registers. This is currently an opt-in feature, and it is still possible to override allocation_order_begin/end. That will not be true for long. llvm-svn: 133320
-
Bill Wendling authored
* Make this used only if CFI is used. llvm-svn: 133319
-
Eric Christopher authored
range without a libcall to a new mulo<mode> libcall that we'd have to create. Finishes the rest of rdar://9090077 and rdar://9210061 llvm-svn: 133318
-
Greg Clayton authored
This us useful because sometomes you have to show a single character as: 'a' (using eFormatChar) and other times you might have an array of single charcters for display as: 'a' 'b' 'c', and other times you might want to show the contents of buffer of characters that can contain non printable chars: "\0\x22\n123". This also fixes an issue that currently happens when you have a single character C string (const char *a = "a"; or char b[1] = { 'b' };) that was being output as "'a'" incorrectly due to the way the eFormatChar format output worked. llvm-svn: 133316
-
Argyrios Kyrtzidis authored
llvm-svn: 133315
-
Bill Wendling authored
llvm-svn: 133314
-
Jakob Stoklund Olesen authored
llvm-svn: 133313
-
-
Eric Christopher authored
llvm-svn: 133311
-
Jakob Stoklund Olesen authored
llvm-svn: 133310
-
Douglas Gregor authored
silently dropped ownership qualifiers that were being applied to ownership-qualified, substituted type that was *not* a substituted template type parameter. We now provide a diagnostic in such cases, and recover by dropping the added qualifiers. Document this behavior in the ARC specification. llvm-svn: 133309
-
Jakob Stoklund Olesen authored
llvm-svn: 133308
-
Eric Christopher authored
llvm-svn: 133307
-
Douglas Gregor authored
qualifiers, so that an __unsafe_unretained-qualified type T in ARC code will have the same mangling as T in non-ARC code, improving ABI interoperability. This works now because we infer or require a lifetime qualifier everywhere one can appear in an external interface. Another part of <rdar://problem/9595486>. llvm-svn: 133306
-
Matt Beaumont-Gay authored
llvm-svn: 133305
-
Douglas Gregor authored
llvm-svn: 133304
-
Douglas Gregor authored
ownership-unqualified retainable object type as __strong. This allows us to write, e.g., std::vector<id> and we'll infer that the vector's element types have __strong ownership semantics, which is far nicer than requiring: std::vector<__strong id> Note that we allow one to override the ownership qualifier of a substituted template type parameter, e.g., given template<typename T> struct X { typedef __weak T type; }; X<id> is treated the same as X<__strong id>. At instantiation type, the __weak in "__weak T" overrides the (inferred or specified) __strong on the template argument type, so that we can still provide metaprogramming transformations. This is part of <rdar://problem/9595486>. llvm-svn: 133303
-
Greg Clayton authored
issue in the way block variables are marked as parsed. In the DWARF parser we always parse all blocks for a function at once, so we can mark all blocks as having all variables parsed and avoid recursive function calls to try and reparse things that have already been handled. Fixed an issue with how variables get scoped into blocks. The DWARF parser can now handle abtract class definitions that contain concrete static variables. When the concrete instance of the class functions get instantiated, they will track down the concrete block for the abtract block and add the variable to each block. llvm-svn: 133302
-
Chad Rosier authored
llvm-svn: 133301
-
- Jun 17, 2011
-
-
John McCall authored
llvm-svn: 133300
-
Bill Wendling authored
llvm-svn: 133299
-