| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
by switching to a ValueMap. Patch by Andrea DiBiagio!
llvm-svn: 181397
|
| |
|
|
|
|
|
|
| |
Fold (xor (and x, y), y) -> (and (not x), y)
This removes an opportunity for a constant to appear twice.
llvm-svn: 181395
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This provides basic functionality for imported declarations. For
subprograms and types some amount of lazy construction is supported (so
the definition of a function can proceed the using declaration), but it
still doesn't handle declared-but-not-defined functions (since we don't
generally emit function declarations).
Variable support is really rudimentary at the moment - simply looking up
the existing definition with no support for out of order (declaration,
imported_module, then definition).
llvm-svn: 181392
|
| |
|
|
| |
llvm-svn: 181391
|
| |
|
|
|
|
| |
instead of relying upon an extra call to finish initializing.
llvm-svn: 181383
|
| |
|
|
| |
llvm-svn: 181378
|
| |
|
|
|
|
|
| |
The two nested loops were confusing and also conservative in identifying
reduction variables. This patch replaces them by a worklist based approach.
llvm-svn: 181369
|
| |
|
|
|
|
|
|
|
| |
A = 9
B = 3 * A - 2 * A + 1 as B = 3 * A - (2 * A + 1)
rdar://13816516
llvm-svn: 181366
|
| |
|
|
|
|
|
|
|
| |
DIBuilder::createImportedDeclaration isn't fully plumbed through (note,
lacking in AsmPrinter/DwarfDebug support) but this seemed like a
sufficiently useful division of code to make the subsequent patch(es)
easier to follow.
llvm-svn: 181364
|
| |
|
|
|
|
| |
Patch by Kai Nacke!
llvm-svn: 181363
|
| |
|
|
|
|
| |
No functional change.
llvm-svn: 181355
|
| |
|
|
| |
llvm-svn: 181354
|
| |
|
|
| |
llvm-svn: 181348
|
| |
|
|
| |
llvm-svn: 181346
|
| |
|
|
| |
llvm-svn: 181344
|
| |
|
|
|
|
|
|
|
| |
Apparently we didn't keep an association of Compile Unit metadata nodes
to DIEs so looking up that parental context failed & thus caused no
DW_TAG_imported_modules to be emitted at the CU scope. Fix this by
adding the mapping & sure up the test case to verify this.
llvm-svn: 181339
|
| |
|
|
|
|
|
| |
Implement suggestions by Bill Schmidt in post-commit review. No functionality
change intended.
llvm-svn: 181338
|
| |
|
|
|
|
| |
Missing file, HexagonSplitConst32AndConst64.cpp, from lib/Target/Hexagon/CMakeLists.txt.
llvm-svn: 181334
|
| |
|
|
| |
llvm-svn: 181331
|
| |
|
|
| |
llvm-svn: 181324
|
| |
|
|
| |
llvm-svn: 181313
|
| |
|
|
|
|
|
|
| |
createSystemZMCCodeGenInfo was not passing the optimization level to
InitMCCodeGenInfo(), so -O0 would be ignored. Fixes DebugInfo/namespace.ll
after the changes in r181271.
llvm-svn: 181312
|
| |
|
|
| |
llvm-svn: 181296
|
| |
|
|
|
|
|
|
|
|
| |
We were passing an i32 to ConstantInt::get where an i64 was needed and we must
also pass the sign if we pass negatives numbers. The start index passed to
getConsecutiveVector must also be signed.
Should fix PR15882.
llvm-svn: 181286
|
| |
|
|
| |
llvm-svn: 181271
|
| |
|
|
|
|
|
|
| |
Patch by: Michel Dänzer
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 181269
|
| |
|
|
|
|
|
|
| |
Patch by: Michel Dänzer
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 181268
|
| |
|
|
|
|
|
|
| |
Patch by: Michel Dänzer
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 181267
|
| |
|
|
|
|
|
|
| |
Patch by: Michel Dänzer
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 181266
|
| |
|
|
|
|
|
|
| |
Patch by: Michel Dänzer
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 181265
|
| |
|
|
|
|
|
|
| |
Patch by: Michel Dänzer
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 181263
|
| |
|
|
| |
llvm-svn: 181255
|
| |
|
|
|
|
|
|
| |
sink options) command line options at runtime.
Patch by Dan Liew!
llvm-svn: 181254
|
| |
|
|
|
|
| |
Patch by Dan Liew!
llvm-svn: 181253
|
| |
|
|
| |
llvm-svn: 181250
|
| |
|
|
| |
llvm-svn: 181249
|
| |
|
|
| |
llvm-svn: 181248
|
| |
|
|
| |
llvm-svn: 181247
|
| |
|
|
| |
llvm-svn: 181235
|
| |
|
|
| |
llvm-svn: 181233
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Test case by Michele Scandale!
Fixes PR10293: Load not hoisted out of loop with multiple exits.
There are few regressions with this patch, now tracked by
rdar:13817079, and a roughly equal number of improvements. The
regressions are almost certainly back luck because LoopRotate has very
little idea of whether rotation is profitable. Doing better requires a
more comprehensive solution.
This checkin is a quick fix that lacks generality (PR10293 has
a counter-example). But it trivially fixes the case in PR10293 without
interfering with other cases, and it does satify the criteria that
LoopRotate is a loop canonicalization pass that should avoid
heuristics and special cases.
I can think of two approaches that would probably be better in
the long run. Ultimately they may both make sense.
(1) LoopRotate should check that the current header would make a good
loop guard, and that the loop does not already has a sufficient
guard. The artifical SimplifiedLoopLatch check would be unnecessary,
and the design would be more general and canonical. Two difficulties:
- We need a strong guarantee that we won't endlessly rotate, so the
analysis would need to be precise in order to avoid the
SimplifiedLoopLatch precondition.
- Analysis like this are usually based on SCEV, which we don't want to
rely on.
(2) Rotate on-demand in late loop passes. This could even be done by
shoving the loop back on the queue after the optimization that needs
it. This could work well when we find LICM opportunities in
multi-branch loops. This requires some work, and it doesn't really
solve the problem of SCEV wanting a loop guard before the analysis.
llvm-svn: 181230
|
| |
|
|
|
|
|
|
|
| |
v2:
- Replace switch statement with TSFlags query
Reviewed-by: Vincent Lejeune <vljn@ovi.com>
Tested-By: Aaron Watry <awatry@gmail.com>
llvm-svn: 181229
|
| |
|
|
|
|
| |
Reviewed-by: Vincent Lejeune <vljn@ovi.com>
Tested-By: Aaron Watry <awatry@gmail.com>
llvm-svn: 181228
|
| |
|
|
| |
llvm-svn: 181227
|
| |
|
|
| |
llvm-svn: 181226
|
| |
|
|
|
|
| |
Reviewed-by: Vincent Lejeune <vljn@ovi.com>
Tested-By: Aaron Watry <awatry@gmail.com>
llvm-svn: 181225
|
| |
|
|
| |
llvm-svn: 181224
|
| |
|
|
|
|
| |
Reviewed-by: Vincent Lejeune <vljn@ovi.com>
Tested-By: Aaron Watry <awatry@gmail.com>
llvm-svn: 181223
|
| |
|
|
|
|
|
|
|
|
|
|
| |
As pointed out by Rafael Espindola, we should match the DWARF encodings
produced by GCC in both pic and non-pic modes. This was not the case
for the non-pic case.
This patch changes all DWARF encodings to DW_EH_PE_absptr for the
non-pic case, just like GCC does. The test case is updated to check
for both variants.
llvm-svn: 181222
|
| |
|
|
|
|
|
| |
This patch handles the R_PPC64_REL64 relocation type for powerpc64
for mcjit.
llvm-svn: 181220
|