- May 22, 2013
-
-
Nadav Rotem authored
We are not working on a DAG and I ran into a number of problems when I enabled the vectorizations of 'diamond-trees' (trees that share leafs). * Imroved the numbering API. * Changed the placement of new instructions to the last root. * Fixed a bug with external tree users with non-zero lane. * Fixed a bug in the placement of in-tree users. llvm-svn: 182508
-
Nadav Rotem authored
llvm-svn: 182507
-
Jean-Luc Duprat authored
The earlier change list introduced the following inst combines: B * (uitofp i1 C) —> select C, B, 0 A * (1 - uitofp i1 C) —> select C, 0, A select C, 0, B + select C, A, 0 —> select C, A, B Together these 3 changes would simplify : A * (1 - uitofp i1 C) + B * uitofp i1 C down to : select C, B, A In practice we found that the first two substitutions can have a negative effect on performance, because they reduce opportunities to use FMA contractions; between the two options FMAs are often the better choice. This change list amends the previous one to enable just these inst combines: select C, B, 0 + select C, 0, A —> select C, B, A A * (1 - uitofp i1 C) + B * uitofp i1 C —> select C, B, A llvm-svn: 182499
-
Adrian Prantl authored
llvm-svn: 182495
-
Benjamin Kramer authored
Take #2 on fixing PR15977. llvm-svn: 182486
-
Arnold Schwaighofer authored
The Value pointers we store in the induction variable list can be RAUW'ed by a call to SCEVExpander::expandCodeFor, use a TrackingVH instead. Do the same thing in some other places where we store pointers that could potentially be RAUW'ed. Fixes PR16073. llvm-svn: 182485
-
Rafael Espindola authored
llvm-svn: 182482
-
Rafael Espindola authored
Fixes a use of uninitialized memory found by asan and valgind. llvm-svn: 182480
-
Richard Sandiford authored
Addresses a review comment from Ulrich Weigand. No functional change intended. I'm not sure whether the old TODO that this patch touches still holds, but that's something we'd get to when adding a targetted scheduling description. llvm-svn: 182474
-
Richard Sandiford authored
The original version of the pass could underestimate the length of a backward branch in cases like: alignment to N bytes or more ... relaxable branch A ... foo: (aligned to M<N bytes) ... bar: (aligned to N bytes) ... relaxable branch B to foo We don't add any misalignment gap for "bar" because N bytes of alignment had already been reached earlier in the function. In this case, assuming that A is relaxed can push "foo" closer to "bar", and make B appear to be in range. Similar problems can occur for forward branches. I don't think it's possible to create blocks with mixed alignments as things stand, not least because we haven't yet defined getPrefLoopAlignment() for SystemZ (that would need benchmarking). So I don't think we can test this yet. Thanks to Rafael Espíndola for spotting the bug. llvm-svn: 182460
-
David Majnemer authored
Allow LLVM to take advantage of shift instructions that set the ZF flag, making instructions that test the destination superfluous. llvm-svn: 182454
-
NAKAMURA Takumi authored
R600ISelLowering.cpp: Avoid "using namespace Intrinsic;" to appease MSC. Specify namespaces explicitly here. MSC is confused about "memcpy" between <cstring> and llvm::Intrinsic::memcpy, when llvm::Intrinsic were exposed. llvm-svn: 182452
-
NAKAMURA Takumi authored
llvm-svn: 182451
-
Owen Anderson authored
Create an FPOW SDNode opcode def in the target independent .td file rather than in a specific backend. llvm-svn: 182450
-
Filip Pizlo authored
the C API to provide their own way of allocating JIT memory (both code and data) and finalizing memory permissions (page protections, cache flush). llvm-svn: 182448
-
Rafael Espindola authored
This should hopefully fix http://lab.llvm.org:8011/builders/clang-x86_64-darwin11-self-mingw32 llvm-svn: 182446
-
Rafael Espindola authored
llvm-svn: 182444
-
Rafael Espindola authored
llvm-svn: 182443
-
Reed Kotler authored
a RegScavenger object on it's own. llvm-svn: 182430
-
- May 21, 2013
-
-
Filip Pizlo authored
libExecutionEngine. Move method implementations that aren't specific to allocation out of SectionMemoryManager and into RTDyldMemoryManager. This is in preparation for exposing RTDyldMemoryManager through the C API. This is a fixed version of r182407 and r182411. That first revision broke builds because I forgot to move the conditional includes of various POSIX headers from SectionMemoryManager into RTDyldMemoryManager. Those includes are necessary because of how getPointerToNamedFunction works around the glibc libc_nonshared.a thing. The latter revision still broke things because I forgot to include llvm/Config/config.h. llvm-svn: 182418
-
Filip Pizlo authored
llvm-svn: 182415
-
Filip Pizlo authored
Fix busted comment. This conditional include block used to be in SectionMemoryManager, but is now in RTDyldMemoryManager. llvm-svn: 182412
-
Filip Pizlo authored
libExecutionEngine. Move method implementations that aren't specific to allocation out of SectionMemoryManager and into RTDyldMemoryManager. This is in preparation for exposing RTDyldMemoryManager through the C API. This is a fixed version of r182407. That revision broke builds because I forgot to move the conditional includes of various POSIX headers from SectionMemoryManager into RTDyldMemoryManager. Those includes are necessary because of how getPointerToNamedFunction works around the glibc libc_nonshared.a thing. llvm-svn: 182411
-
Filip Pizlo authored
llvm-svn: 182409
-
Filip Pizlo authored
the C API to provide their own way of allocating JIT memory (both code and data) and finalizing memory permissions (page protections, cache flush). llvm-svn: 182408
-
Filip Pizlo authored
libExecutionEngine. Move method implementations that aren't specific to allocation out of SectionMemoryManager and into RTDyldMemoryManager. This is in preparation for exposing RTDyldMemoryManager through the C API. llvm-svn: 182407
-
Akira Hatanaka authored
llvm-svn: 182397
-
Akira Hatanaka authored
llvm-svn: 182396
-
Justin Holewinski authored
llvm-svn: 182394
-
Jyotsna Verma authored
llvm-svn: 182390
-
Justin Holewinski authored
The intrinsic calls are dropped, but the annotated value is propagated. Fixes PR 15253 Original patch by Zeng Bin! llvm-svn: 182387
-
Hal Finkel authored
Although I had added some support for the BDZ/BDNZ branches into the selector (in r158204), I had not correctly adjusted the condition at the top of the loop. As a result, these branches were still essentially unsupported. This fixes PR16086. Unfortunately, any test case would be very large (because it would need to force the loop backedge to exceed the range of the 16-bit immediate). llvm-svn: 182385
-
Elena Demikhovsky authored
llvm-svn: 182377
-
Evgeniy Stepanov authored
This stuff is used on platforms where MSan does not have a proper VarArg implementation (anything other than x86_64 at the moment). llvm-svn: 182375
-
Elena Demikhovsky authored
Removed SSEPacked domain from all forms (AVX, SSE, signed, unsigned) scalar compare instructions, like COMISS, COMISD. No functional changes. llvm-svn: 182371
-
Benjamin Kramer authored
Otherwise we'll get a mix of signed and unsigned compares. Fixes PR15977. llvm-svn: 182364
-
Benjamin Kramer authored
Fixes PR16083. llvm-svn: 182357
-
Richard Sandiford authored
llvm-svn: 182356
-
Eric Christopher authored
llvm-svn: 182349
-
Eric Christopher authored
type signature computation. llvm-svn: 182348
-