| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
| |
pointer. Original patch by Troy D. Straszheim; fixes PR7283.
llvm-svn: 105621
|
| |
|
|
|
|
| |
need to go past the highest offset that's known to contain an empty base subobject.
llvm-svn: 105611
|
| |
|
|
| |
llvm-svn: 105608
|
| |
|
|
| |
llvm-svn: 105606
|
| |
|
|
|
|
| |
the function call is left where the local variable is declared.
llvm-svn: 105602
|
| |
|
|
|
|
| |
make it through codegen to the .s file
llvm-svn: 105599
|
| |
|
|
| |
llvm-svn: 105597
|
| |
|
|
| |
llvm-svn: 105595
|
| |
|
|
|
|
| |
appropriate to check them when compiling or other archs. Fixes a problem where compiling for NEON would use x86 sema rules.
llvm-svn: 105593
|
| |
|
|
|
|
|
|
| |
ARM.
Fixes PR7310.
llvm-svn: 105592
|
| |
|
|
| |
llvm-svn: 105590
|
| |
|
|
|
|
| |
shufflevector instruction. This means it can now be used for vector truncation and concatenation. This will be used for the ARM NEON implementation.
llvm-svn: 105589
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- We actually pretend that we have two separate types for LLVM assembly/bitcode because we need to use the standard suffixes with LTO ('clang -O4 -c t.c' should generate 't.o').
It is now possible to do something like:
$ clang -emit-llvm -S t.c -o t.ll ... assorted other compile flags ...
$ clang -c t.ll -o t.o ... assorted other compile flags ...
and expect that the output will be almost* identical to:
$ clang -c t.c -o t.o ... assorted other compile flags ...
because all the target settings (default CPU, target features, etc.) will all be initialized properly by the driver/frontend.
*: This isn't perfect yet, because in practice we will end up running the optimization passes twice. It's possible to get something equivalent out with a well placed -mllvm -disable-llvm-optzns, but I'm still thinking about the cleanest way to solve this problem more generally.
llvm-svn: 105584
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- This magically enables using 'clang -cc1' as a replacement for most of 'llvm-as', 'llvm-dis', 'llc' and 'opt' functionality.
For example, 'llvm-as' is:
$ clang -cc1 -emit-llvm-bc FOO.ll -o FOO.bc
and 'llvm-dis' is:
$ clang -cc1 -emit-llvm FOO.bc -o -
and 'opt' is, e.g.:
$ clang -cc1 -emit-llvm -O3 -o FOO.opt.ll FOO.ll
and 'llc' is, e.g.:
$ clang -cc1 -S -o - FOO.ll
The nice thing about using the backend tools this way is that they are guaranteed to exactly match how the compiler generates code (for example, setting the same backend options).
llvm-svn: 105583
|
| |
|
|
|
|
| |
- These inputs follow an abbreviated execution path, but are still worth handling by FrontendAction so they reuse all the other clang -cc1 features.
llvm-svn: 105582
|
| |
|
|
| |
llvm-svn: 105581
|
| |
|
|
| |
llvm-svn: 105580
|
| |
|
|
|
|
| |
to parallel what is done for AST inputs.
llvm-svn: 105579
|
| |
|
|
|
|
| |
instead of an IsAST bool.
llvm-svn: 105578
|
| |
|
|
| |
llvm-svn: 105577
|
| |
|
|
|
|
| |
create modules which have target data strings.
llvm-svn: 105576
|
| |
|
|
| |
llvm-svn: 105575
|
| |
|
|
|
|
| |
argument to BackendConsumer.
llvm-svn: 105574
|
| |
|
|
|
|
|
| |
type of rhs need be compared to setter's argument and
not the getter type. Fixes radar 8062778
llvm-svn: 105560
|
| |
|
|
|
|
|
|
| |
an existing ir for load of a bock variable. This cannot be
done across basic blocks.
Fixes radar 8064140.
llvm-svn: 105549
|
| |
|
|
|
|
| |
checking the symbol type and memory space.
llvm-svn: 105547
|
| |
|
|
| |
llvm-svn: 105537
|
| |
|
|
|
|
|
| |
created temporary. Use own initialized entity for copied in block
variables.
llvm-svn: 105533
|
| |
|
|
|
|
| |
TODO: add remainder of builtins to CGBuiltin, add code to SemaChecking to validate constants.
llvm-svn: 105532
|
| |
|
|
|
|
| |
constructor into an extension warning into the error that C++98 requires.
llvm-svn: 105529
|
| |
|
|
|
|
|
| |
or block-pointer type by removing the qualifiers parameter. Introduce a
method to perform semantic checking when adding qualifiers to a type.
llvm-svn: 105526
|
| |
|
|
| |
llvm-svn: 105525
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
a member template, and you try to call the member template with an explicit
template argument. See PR7247
For example, this downgrades the error to a warning in:
template<typename T> struct set{};
struct Value {
template<typename T>
void set(T value) {
}
};
void foo() {
Value v;
v.set<double>(3.2); // Warning here.
}
llvm-svn: 105518
|
| |
|
|
|
|
| |
llvm-gcc enabled this couple of weeks ago.
llvm-svn: 105516
|
| |
|
|
|
|
| |
This is never null, but the associated type might be.
llvm-svn: 105503
|
| |
|
|
| |
llvm-svn: 105500
|
| |
|
|
|
|
| |
at array qualifiers. Fixes rdar://problem/8018292.
llvm-svn: 105494
|
| |
|
|
| |
llvm-svn: 105489
|
| |
|
|
|
|
| |
class object in blocks and carry it to IRGen.
llvm-svn: 105487
|
| |
|
|
| |
llvm-svn: 105484
|
| |
|
|
|
|
| |
No functionality change yet.
llvm-svn: 105479
|
| |
|
|
|
|
|
| |
was given. Remove some unnecessary accounting from BlockScopeInfo. Handle
typedef'ed function types until such time as we decide not.
llvm-svn: 105478
|
| |
|
|
|
|
| |
arguments after translation, instead of the -cc1 level arguments.
llvm-svn: 105476
|
| |
|
|
|
|
|
| |
added as the last output step, instead of just hacking it into the link step.
- Among other things, this fixes dSYM generation when using multiple -arch options.
llvm-svn: 105475
|
| |
|
|
| |
llvm-svn: 105474
|
| |
|
|
|
|
|
|
| |
setting up block's descriptor. This is on going work to
support c++ specific issues in setting up blocks
various APIs.
llvm-svn: 105469
|
| |
|
|
|
|
| |
moves us further.
llvm-svn: 105468
|
| |
|
|
|
|
|
| |
the case where we pick up block arguments from a typedef. Save the block
signature as it was written, and preserve same through PCH.
llvm-svn: 105466
|
| |
|
|
| |
llvm-svn: 105465
|
| |
|
|
|
|
| |
type parameter pack is distinct from a template type parameter.
llvm-svn: 105464
|