| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 61219
|
|
|
|
|
|
| |
that of INSERT_SUBREG and SUBREG_TO_REG.
llvm-svn: 61218
|
|
|
|
| |
llvm-svn: 61217
|
|
|
|
| |
llvm-svn: 61216
|
|
|
|
|
|
| |
used, mark the defs as dead.
llvm-svn: 61215
|
|
|
|
|
|
| |
non-entry blocks, so that it doesn't appear use-before-def anywhere.
llvm-svn: 61214
|
|
|
|
| |
llvm-svn: 61213
|
|
|
|
|
|
| |
expressions involved
llvm-svn: 61212
|
|
|
|
| |
llvm-svn: 61211
|
|
|
|
| |
llvm-svn: 61210
|
|
|
|
| |
llvm-svn: 61209
|
|
|
|
|
|
|
|
| |
become useful or correct until we (1) parse template arguments
correctly, (2) have some way to turn template-ids into types,
declarators, etc., and (3) have a real representation of templates.
llvm-svn: 61208
|
|
|
|
| |
llvm-svn: 61205
|
|
|
|
|
|
| |
code gen which did not belong there.
llvm-svn: 61203
|
|
|
|
| |
llvm-svn: 61202
|
|
|
|
| |
llvm-svn: 61201
|
|
|
|
|
|
|
|
| |
array size declarators. No need to go through all the trouble
of parsing crazy things like [static const 4] when most code
doesn't need it.
llvm-svn: 61200
|
|
|
|
| |
llvm-svn: 61199
|
|
|
|
|
|
|
| |
these completely ignore parsed attributes anyway, so don't try
to read them.
llvm-svn: 61198
|
|
|
|
|
|
|
|
| |
emit duplicate diags (some in parser and some in sema) and to
warn about use of typequals in array sizes. This implements
PR2759.
llvm-svn: 61197
|
|
|
|
|
|
| |
Simplifying the sdiv might allow further simplifications for our users.
llvm-svn: 61196
|
|
|
|
| |
llvm-svn: 61195
|
|
|
|
|
|
| |
bit from the original function to the cloned one.
llvm-svn: 61194
|
|
|
|
| |
llvm-svn: 61193
|
|
|
|
|
|
|
|
|
|
| |
- Update comment to reflect fact that StructRet is now supported for
any type (modulo LLVM support).
- No functionality change, no scalar types currently use this
feature.
llvm-svn: 61192
|
|
|
|
| |
llvm-svn: 61191
|
|
|
|
| |
llvm-svn: 61189
|
|
|
|
|
|
| |
void foo() { return foo(); }
llvm-svn: 61188
|
|
|
|
|
|
|
| |
Fix PR2790 by making a warning an EXTWARN instead of EXTENSION.
Add a new EXTENSION warning for "return (some void expression);"
llvm-svn: 61187
|
|
|
|
| |
llvm-svn: 61184
|
|
|
|
|
|
|
| |
folding's tail merging doesn't currently preserve liveness information
which post-RA scheduling requires.
llvm-svn: 61183
|
|
|
|
| |
llvm-svn: 61182
|
|
|
|
| |
llvm-svn: 61181
|
|
|
|
| |
llvm-svn: 61180
|
|
|
|
|
|
|
|
| |
and the RegisterScavenger not to expect traditional liveness
techniques are applicable to these registers, since we don't fully
modify the effects of push and pop after stackification.
llvm-svn: 61179
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
my last patch to this file.
The issue there was that all uses of an IV inside a loop
are actually references to Base[IV*2], and there was one
use outside that was the same but LSR didn't see the base
or the scaling because it didn't recurse into uses outside
the loop; thus, it used base+IV*scale mode inside the loop
instead of pulling base out of the loop. This was extra bad
because register pressure later forced both base and IV into
memory. Doing that recursion, at least enough
to figure out addressing modes, is a good idea in general;
the change in AddUsersIfInteresting does this. However,
there were side effects....
It is also possible for recursing outside the loop to
introduce another IV where there was only 1 before (if
the refs inside are not scaled and the ref outside is).
I don't think this is a common case, but it's in the testsuite.
It is right to be very aggressive about getting rid of
such introduced IVs (CheckForIVReuse and the handling of
nonzero RewriteFactor in StrengthReduceStridedIVUsers).
In the testcase in question the new IV produced this way
has both a nonconstant stride and a nonzero base, neither
of which was handled before. (This patch does not handle
all the cases where this can happen.) And when inserting
new code that feeds into a PHI, it's right to put such
code at the original location rather than in the PHI's
immediate predecessor(s) when the original location is outside
the loop (a case that couldn't happen before)
(RewriteInstructionToUseNewBase); better to avoid making
multiple copies of it in this case.
Everything above is exercised in
CodeGen/X86/lsr-negative-stride.ll (and ifcvt4 in ARM which is
the same IR).
llvm-svn: 61178
|
|
|
|
|
|
| |
and safe and orthogonal from turning off load pre.
llvm-svn: 61177
|
|
|
|
| |
llvm-svn: 61176
|
|
|
|
| |
llvm-svn: 61175
|
|
|
|
| |
llvm-svn: 61174
|
|
|
|
| |
llvm-svn: 61173
|
|
|
|
|
|
| |
read the bytes needed to determine if a token is not at the start of the line.
llvm-svn: 61172
|
|
|
|
| |
llvm-svn: 61171
|
|
|
|
|
|
| |
read the file offset in the token data buffer directly.
llvm-svn: 61170
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
with everyone's favorite error messages:
Comparing stages 2 and 3
warning: ./cc1-checksum.o differs
warning: ./cc1plus-checksum.o differs
Bootstrap comparison failure!
./c-decl.o differs
./cp/decl.o differs
./df-core.o differs
./gcc.o differs
./i386.o differs
./stor-layout.o differs
./tree-pretty-print.o differs
./tree.o differs
make[2]: *** [compare] Error 1
make[1]: *** [stage3-bubble] Error 2
See PR3227.
llvm-svn: 61169
|
|
|
|
|
|
| |
the token kind from the token data buffer. This results in a minor speedup and reduces the dependency on GetToken().
llvm-svn: 61168
|
|
|
|
| |
llvm-svn: 61167
|
|
|
|
| |
llvm-svn: 61166
|
|
|
|
|
|
| |
type-dependent or the destination type is dependent.
llvm-svn: 61165
|
|
|
|
|
|
|
|
| |
llvm.dbg.compile_units to identify source file for various debug entities. Each llvm.dbg.compile_unit matches one file on the disk. However, the backend only supports one DW_TAG_compile_unit per .o file. The backend selects first compile_unit from the vector to construct DW_TAG_compile_unit entry, which is not correct in all cases.
First step to resolve this is, record file name and directory directly in debug info for various debug entities.
llvm-svn: 61164
|