- Mar 22, 2017
-
-
Adrian Prantl authored
llvm-svn: 298521
-
Sanjay Patel authored
insertelement (insertelement X, Y, IdxC1), ScalarC, IdxC2 --> insertelement (insertelement X, ScalarC, IdxC2), Y, IdxC1 As noted in the code comment and seen in the test changes, the motivation is that by pulling constant insertion up, we may be able to constant fold some insertelement instructions. Differential Revision: https://reviews.llvm.org/D31196 llvm-svn: 298520
-
Zachary Turner authored
This was added to workaround a limitation in LLVM's implementation of getting the current user's home directory, since it would only look at the value of $HOME, but we did not want to rely on that being set so we would also look in the password database. Adding the ability to look in the password database to LLVM was a straightforward patch that was submitted in r298513, so since that is done this test is no longer needed. llvm-svn: 298519
-
Adrian Prantl authored
Also add an assertion for the case that there are multiple FI expressions with a DW_OP_LLVM_fragment; which should violate internal constraints in DbgVariable. llvm-svn: 298518
-
Tim Hammerquist authored
rdar://problem/31197116 llvm-svn: 298517
-
George Rokos authored
For compatibility with Fortran. Differential Revision: https://reviews.llvm.org/D31205 llvm-svn: 298516
-
George Rokos authored
Allow the user to manually specify where libelf is installed. Differential Revision: https://reviews.llvm.org/D31207 llvm-svn: 298515
-
Zachary Turner authored
It's possible (albeit strange) for $HOME to intentionally point somewhere other than the user's home directory as reported by the password database. Our test shouldn't fail in this case. This patch updates the test to pull directly from the password database before unsetting $HOME, rather than comparing the return value of home_directory() to the original value of the environment variable. llvm-svn: 298514
-
Zachary Turner authored
This is something of an edge case, but when the $HOME environment variable is not set, we can still look in the password database to get the current user's home directory. Added a test for this by getting the value of $HOME, then unsetting it, then calling home_directory() and verifying that it succeeds and that the value is the same as what we originally read from the environment. llvm-svn: 298513
-
Artyom Skrobov authored
[ARM] t2_so_imm_neg had a subtle bug in the conversion, and could trigger UB by negating (int)-2147483648. By pure luck, none of the pre-existing tests triggered this; so I'm adding one. Summary: Thanks to Vitaly Buka for helping catch this. Reviewers: rengolin, jmolloy, efriedma, vitalybuka Subscribers: llvm-commits, aemerson Differential Revision: https://reviews.llvm.org/D31242 llvm-svn: 298512
-
Simon Pilgrim authored
llvm-svn: 298511
-
Roman Gareev authored
Introduce another level of alias metadata to distinguish the individual non-aliasing accesses that have inter iteration alias-free base pointers marked with "Inter iteration alias-free" mark nodes. It can be used to, for example, distinguish different stores (loads) produced by unrolling of the innermost loops and, subsequently, sink (hoist) them by LICM. Reviewed-by:
Tobias Grosser <tobias@grosser.es> Differential Revision: https://reviews.llvm.org/D30606 llvm-svn: 298510
-
Pavel Labath authored
This reverts commit r298465 as it breaks TestLLVM.TestHomeDirectory.test_tilde_home_directory. llvm-svn: 298509
-
Rafael Espindola authored
This matches gas behavior and is part of pr31888. llvm-svn: 298508
-
Roman Gareev authored
Map the new load to the base pointer of the invariant load hoisted load to be able to find the alias information for it. Reviewed-by:
Tobias Grosser <tobias@grosser.es> Differential Revision: https://reviews.llvm.org/D30605 llvm-svn: 298507
-
Rafael Espindola authored
This matches gas and is part of pr31888. llvm-svn: 298506
-
Rafael Espindola authored
These sections are merged together by the linker, so they should have the same time. llvm-svn: 298505
-
Martin Bohme authored
This reverts commit r298410 (which produces incorrect warnings, see comments on https://reviews.llvm.org/rL298410). llvm-svn: 298504
-
Martin Bohme authored
This reverts commit r298433. (Required to revert r298410, see comments there.) llvm-svn: 298503
-
Dmitry Preobrazhensky authored
Fixed v_mad_i64_i32/u64_u32 encoding Reviewers: artem.tamazov Differential Revision: https://reviews.llvm.org/D30828 llvm-svn: 298502
-
Alexander Kornienko authored
llvm-svn: 298501
-
Alexander Kornienko authored
llvm-svn: 298500
-
Alexander Kornienko authored
Summary: Using CaseType::CT_AnyCase for selected identifier results in inheriting case style setting from more basic identifier type. This patch changes CT_AnyCase behavior to ignore case style of specified identifier. If case style was not set, llvm::Optional will be used for keeping this information (llvm::Optional<>::hasVal), thus CT_AnyCase will no longer mean more general identifier style should be used. This eliminates false-positives when naming convention is not clear for specific areas of code (legacy, third party) or for selected types. Reviewers: berenm, alexfh Reviewed By: alexfh Subscribers: cfe-commits, JDevlieghere Differential Revision: https://reviews.llvm.org/D30931 llvm-svn: 298499
-
Serge Pavlov authored
String concatenation used in r298336 allowed to get rid of extra spaces but also resulted in lost delimiter spaces, so use previous method. llvm-svn: 298498
-
Simon Pilgrim authored
As discussed on PR28513, add tests for constant multiplication by constants between 1 to 32 llvm-svn: 298497
-
Evgeny Astigeevich authored
- First time, during calculation of the cost in InlineCost.cpp - Second time, during calculation of the cost in Inliner.cpp This patches fixes this. Differential Revision: https://reviews.llvm.org/D31137 llvm-svn: 298496
-
Simon Pilgrim authored
llvm-svn: 298495
-
Chandler Carruth authored
explaining why we have to ignore errors here even though in other parts of codegen we can be more strict with builtins. Also add a test case based on the code in a TSan test that found this issue. llvm-svn: 298494
-
Alex Lorenz authored
rdar://30659700 Differential Revision: https://reviews.llvm.org/D31134 llvm-svn: 298493
-
Dmitry Vyukov authored
s/covert_morder/convert_morder/ llvm-svn: 298492
-
Chandler Carruth authored
declarations and calls instead of just definitions, and then teach it to *not* attach such attributes even if the source code contains them. This follows the design direction discussed on cfe-dev here: http://lists.llvm.org/pipermail/cfe-dev/2017-January/052066.html The idea is that for C standard library builtins, even if the library vendor chooses to annotate their routines with __attribute__((nonnull)), we will ignore those attributes which pertain to pointer arguments that have an associated size. This allows the widespread (and seemingly reasonable) pattern of calling these routines with a null pointer and a zero size. I have only done this for the library builtins currently recognized by Clang, but we can now trivially add to this set. This will be controllable with -fno-builtin if anyone should care to do so. Note that this does *not* change the AST. As a consequence, warnings, static analysis, and source code rewriting are not impacted. This isn't even a regression on any platform as neither Clang nor LLVM have ever put 'nonnull' onto these arguments for declarations. All this patch does is enable it on other declarations while preventing us from ever accidentally enabling it on these libc functions due to a library vendor. It will also allow any other libraries using this annotation to gain optimizations based on the annotation even when only a declaration is visible. llvm-svn: 298491
-
Stephan Bergmann authored
Reviewers: rsmith, rizsotto.mailinglist Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D31133 llvm-svn: 298490
-
Max Kazantsev authored
This reverts commit rL298481 Fails clang-with-lto-ubuntu build. llvm-svn: 298489
-
Craig Topper authored
[ValueTracking] Make sure we keep range metadata information when calculating known bits for calls to bitreverse intrinsic. llvm-svn: 298488
-
Eric Christopher authored
and into TargetInfo::adjust so that it gets called in more places throughout the compiler (AST serialization in particular). Should fix PPC modules after removing of faltivec. llvm-svn: 298487
-
Craig Topper authored
llvm-svn: 298486
-
Craig Topper authored
llvm-svn: 298485
-
Jonas Paulsson authored
Make sure that any operands, e.g. of an implicit def of a super reg is transferred to the new instruction. Review: Ulrich Weigand llvm-svn: 298484
-
Vitaly Buka authored
Revert "[ARM] Recommit the glueless lowering of addc/adde in Thumb1, including the amended (no UB anymore) fix for adding/subtracting -2147483648." Fails check-llvm with ubsan This reverts commit r298417. llvm-svn: 298482
-
Max Kazantsev authored
This patch allows SCEV predicate analysis to prove implication of some expression predicates from context predicates related to arguments of those expressions. It introduces three new rules: For addition: (A >X && B >= 0) || (B >= 0 && A > X) ===> (A + B) > X. For division: (A > X) && (0 < B <= X + 1) ===> (A / B > 0). (A > X) && (-B <= X < 0) ===> (A / B >= 0). Using these rules, SCEV is able to prove facts like "if X > 1 then X / 2 > 0". They can also be combined with the same context, to prove more complex expressions like "if X > 1 then X/2 + 1 > 1". Diffirential Revision: https://reviews.llvm.org/D30887 Reviewed by: sanjoy llvm-svn: 298481
-