| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 193201
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes pr17639.
Before this patch clang would consider
void foo(void) __attribute((alias("__foo")));
a declaration. It now correctly handles it as a definition.
Initial patch by Alp Toker. I added support for variables.
llvm-svn: 193200
|
| |
|
|
|
|
| |
<rdar://problem/15192473>
llvm-svn: 193199
|
| |
|
|
| |
llvm-svn: 193198
|
| |
|
|
|
|
|
|
|
|
|
| |
Remove unnecessary creation of LexicalScope in collectDeadVariables.
The created LexicialScope was only used to get isAbstractScope, which
should be false from the creation:
"new LexicalScope(NULL, DIDescriptor(SP), NULL, false);".
We can also remove a DenseMap that holds the created LexicalScopes.
llvm-svn: 193196
|
| |
|
|
|
|
|
|
| |
/manifestfile:<path> specifies an alternative manifest file output path.
Default is "<output-path>.manifest" where <output-path> is the executable's
path.
llvm-svn: 193195
|
| |
|
|
| |
llvm-svn: 193194
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Since (as of r190716) Clang no longer emits debug info for C++ friend
declarations (and it seems GCC never has/does, which was the motivation
for the Clang change), there's no actual reachable case for implementing
the part of DWARF 4, Section 7.27 part 5 that pertains to friends.
Leave an assert here so that if/when we do have a client producing
friends and using type units, we can fill in the gap and add appropriate
(unit and feature) tests.
llvm-svn: 193193
|
| |
|
|
|
|
|
|
|
| |
The loop bounds here are uint32_t variables, so it makes sense for the
loop variables to have the same type.
Patch by Yuchen Wu!
llvm-svn: 193192
|
| |
|
|
|
|
| |
obviating the need to create a new ValueObject.
llvm-svn: 193191
|
| |
|
|
|
|
|
|
|
| |
Rename Size to EndPos, which makes more sense because the variable
stores the last location of the blocks.
Patch by Yuchen Wu!
llvm-svn: 193189
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a fixed version of r193161. In order to handle
void foo() __attribute__((alias("bar")));
void bar() {}
void zed() __attribute__((alias("foo")));
it is not enough to delay aliases to the end of the TU, we have to do two
passes over them to find if they are defined or not.
This can be implemented by producing alias as we go and just doing the second
pass at the end. This has the advantage that other parts of clang that were
expecting alias to be processed in order don't have to be changed.
This patch also handles cyclic aliases.
llvm-svn: 193188
|
| |
|
|
|
|
|
| |
This is in line with implementation of _mm_extract_pi16.
rdar://15250497
llvm-svn: 193187
|
| |
|
|
| |
llvm-svn: 193186
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
The set of circumstances where the writeback register is allowed to be in the
list of registers is rather baroque, but I think this implements them all on
the assembly parsing side.
For disassembly, we still warn about an ARM-mode LDM even if the architecture
revision is < v7 (the required architecture information isn't available). It's
a silly instruction anyway, so hopefully no-one will mind.
rdar://problem/15223374
llvm-svn: 193185
|
| |
|
|
|
|
|
|
|
|
| |
Some of the shared compiler/linker flags start with -m, so they've been
getting passed to the compiler only since r180073. Now, the -m* wildcard
is processed after the shared flags and the ignored flags.
Found by Laszlo Nagy!
llvm-svn: 193184
|
| |
|
|
| |
llvm-svn: 193183
|
| |
|
|
| |
llvm-svn: 193180
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The AMDGPUIndirectAddressing pass was previously responsible for
lowering private loads and stores to indirect addressing instructions.
However, this pass was buggy and way too complicated. The only
advantage it had over the new simplified code was that it saved one
instruction per direct write to private memory. This optimization
likely has a minimal impact on performance, and we may be able
to duplicate it using some other transformation.
For the private address space, we now:
1. Lower private loads/store to Register(Load|Store) instructions
2. Reserve part of the register file as 'private memory'
3. After regalloc lower the Register(Load|Store) instructions to
MOV instructions that use indirect addressing.
llvm-svn: 193179
|
| |
|
|
| |
llvm-svn: 193178
|
| |
|
|
| |
llvm-svn: 193177
|
| |
|
|
|
|
| |
Reviewed at http://llvm-reviews.chandlerc.com/D1977
llvm-svn: 193176
|
| |
|
|
|
|
|
|
|
| |
Includes a test case/FIXME demonstrating a bug/limitation in pointer to
member hashing. To be honest I'm not sure why we don't just always use
summary hashing for referenced types... but perhaps I'm missing
something.
llvm-svn: 193175
|
| |
|
|
|
|
|
|
|
|
| |
This patch wasn't reviewed, and isn't correctly preserving the behaviors
relied upon by QT. I don't have a direct example of fallout, but it
should go through the standard code review process. For example, it
should never have removed the QT test case that was added when fixing
those users.
llvm-svn: 193174
|
| |
|
|
| |
llvm-svn: 193173
|
| |
|
|
|
|
|
|
|
|
| |
Line counts in llvm-cov are read in as 64-bit integers but were being truncated
to 32-bit in collectLineCounts(), which caused overflow for large counts.
This patch fixes all counts to be uint64_t.
Patch by Yuchen Wu!
llvm-svn: 193172
|
| |
|
|
|
|
| |
uiAccess argument's type is not really boolean. It's string.
llvm-svn: 193171
|
| |
|
|
|
|
|
|
| |
This is a fix to PR17649, caused by fix in r193073. QT uses 'break' statement
to implement their 'foreach' macro. To enable build of QT, this fix reenables
break but only in 'for' statement specifier and only in the third expression.
llvm-svn: 193170
|
| |
|
|
| |
llvm-svn: 193169
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Style guide demands a two-space indent.
Before:
NSArray *arguments = @[
kind == kUserTicket ? @"--user-store" : @"--system-store",
@"--print-tickets",
@"--productid",
@"com.google.Chrome"
];
After:
NSArray *arguments = @[
kind == kUserTicket ? @"--user-store" : @"--system-store",
@"--print-tickets",
@"--productid",
@"com.google.Chrome"
];
llvm-svn: 193168
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before:
NSArray *arguments =
@[ kind == kUserTicket ? @"--user-store" : @"--system-store",
@"--print-tickets", @"--productid", @"com.google.Chrome" ];
After:
NSArray *arguments = @[
kind == kUserTicket ? @"--user-store" : @"--system-store",
@"--print-tickets",
@"--productid",
@"com.google.Chrome"
];
This fixes llvm.org/PR15231.
llvm-svn: 193167
|
| |
|
|
| |
llvm-svn: 193166
|
| |
|
|
| |
llvm-svn: 193165
|
| |
|
|
| |
llvm-svn: 193164
|
| |
|
|
| |
llvm-svn: 193163
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
undefined names. For example, with this patch we now reject"
This reverts commit r193161.
It broke
void foo() __attribute__((alias("bar")));
void bar() {}
void zed() __attribute__((alias("foo")));
Looks like we have to fix pr17639 first :-(
llvm-svn: 193162
|
| |
|
|
|
|
|
|
|
|
|
|
| |
names. For example, with this patch we now reject
void f1(void) __attribute__((alias("g1")));
This patch is implemented in CodeGen. It is quiet a bit simpler and more
compatible with gcc than implementing it in Sema. The downside is that the
errors only fire during -emit-llvm.
llvm-svn: 193161
|
| |
|
|
|
|
|
|
| |
This is a stopgap fix for cast warnings introduced in r192864.
A proper fix should be investigated by the author when possible.
llvm-svn: 193160
|
| |
|
|
| |
llvm-svn: 193159
|
| |
|
|
| |
llvm-svn: 193158
|
| |
|
|
|
|
|
|
|
|
|
|
| |
These branches have a 16-bit offset (R_MIPS_PC16).
List of conditional branch instructions:
bnz.{b,h,w,d}
bnz.v
bz.{b,h,w,d}
bz.v
llvm-svn: 193157
|
| |
|
|
| |
llvm-svn: 193156
|
| |
|
|
| |
llvm-svn: 193155
|
| |
|
|
| |
llvm-svn: 193154
|
| |
|
|
|
|
|
|
|
|
| |
If we run into the second preprocessor branch chain, the first branch
chain might have already set the maximum branch count on that level to
something > 0.
Fixes PR17645.
llvm-svn: 193153
|
| |
|
|
|
|
| |
PR3168
llvm-svn: 193152
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch changes two things:
a) Allow a header to be part of multiple modules. The reasoning is that
in existing codebases that have a module-like build system, the same
headers might be used in several build targets. Simple reasons might be
that they defined different classes that are declared in the same
header. Supporting a header as a part of multiple modules will make the
transistion easier for those cases. A later step in clang can then
determine whether the two modules are actually compatible and can be
merged and error out appropriately. The later check is similar to what
needs to be done for template specializations anyway.
b) Allow modules to be stored in a directory tree separate from the
headers they describe.
Review: http://llvm-reviews.chandlerc.com/D1951
llvm-svn: 193151
|
| |
|
|
|
|
|
|
|
|
| |
VTList has a long life cycle through the module and getVTList is frequently called. In current getVTList, sequential search over a std::vector is used, this is inefficient in big module.
This patch use FoldingSet to implement hashing mechanism when searching.
Reviewer: Nadav Rotem
Test : Pass unit tests & LNT test suite
llvm-svn: 193150
|
| |
|
|
|
|
| |
Differential Revision: http://llvm-reviews.chandlerc.com/D1963
llvm-svn: 193149
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- Replaced tabs with proper padding
- print() takes two arguments, which are the GCNO and GCDA filenames
- Files are listed at the top of output, appended by line 0
- Stripped strings of trailing \0s
- Removed last two lines of whitespace in output
Patch by Yuchen Wu!
llvm-svn: 193148
|