- Jun 16, 2017
-
-
Peter Smith authored
In preparation for supporting range extension thunks we now continually call createThunks() until no more thunks are added. This requires us to record the thunks we add on each pass and only merge the new ones into the OutputSection. We also need to check if a Relocation is targeting a thunk to prevent us from infinitely creating more thunks. Differential Revision: https://reviews.llvm.org/D34034 llvm-svn: 305555
-
Roman Lebedev authored
Summary: A followup for D32942. Malcolm Parsons has provided a valid testcase that the initial version of the check complained about nested `if`'s. As it turns out, the culprit is the **partially** un-intentional `switch` fallthrough. So rewrite the NestingThreshold logic without ab-using+mis-using that switch with fallthrough, and add testcases with nested `if`' where there should be a warning and shouldn't be a warning. This results in a cleaner, simpler code, too. I guess, now it would be actually possible to pick some reasonable default for `NestingThreshold` setting. Fixes PR33454. Reviewers: malcolm.parsons, alexfh Reviewed By: malcolm.parsons Subscribers: sbenza, xazax.hun, cfe-commits, aaron.ballman Tags: #clang-tools-extra Differential Revision: https://reviews.llvm.org/D34202 llvm-svn: 305554
-
Krzysztof Parzyszek authored
The second part of r305300: when placing the mux at the later location, make sure that it won't use any register that was killed between the two original instructions. Remove any such kills and transfer them to the mux. llvm-svn: 305553
-
Hiroshi Inoue authored
- Topologocal is abbreviated as "topo" in comments, but "top" is used in only one comment. Modify it for consistency. - Capitalize "succ" and "pred" for consistency in one figure. - Other trivial fixes. llvm-svn: 305552
-
Dinar Temirbulatov authored
llvm-svn: 305551
-
Eric Fiselier authored
llvm-svn: 305549
-
Craig Topper authored
[InstCombine] Fold (!iszero(A & K1) & !iszero(A & K2)) -> (A & (K1 | K2)) == (K1 | K2) if K1 and K2 are a 1-bit mask Summary: This is the demorganed version of the case we already handle for the OR of iszero. Reviewers: spatel Reviewed By: spatel Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D34244 llvm-svn: 305548
-
Jason Molenda authored
the FileSpec methods for adding/removing file path components instead of using std::strings; feedback from Sean on the change I added in r305441. <rdar://problem/31825940> llvm-svn: 305547
-
Vedant Kumar authored
Skip checks for null dereference, alignment violation, object size violation, and dynamic type violation if the pointer points to volatile data. Differential Revision: https://reviews.llvm.org/D34262 llvm-svn: 305546
-
Dean Michael Berris authored
Summary: This allows us to do more interesting things with the data available to C++ methods, to log the `this` pointer. Depends on D34050. Reviewers: pelikan Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D34051 llvm-svn: 305545
-
Dean Michael Berris authored
Summary: Before this change, we couldn't capture the `this` pointer that's implicitly the first argument of class member functions. There are some interesting things we can do with capturing even just this single argument for zero-argument member functions. Reviewers: rnk, pelikan Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D34052 llvm-svn: 305544
-
Richard Trieu authored
These VarDecl's are static data members of classes. Since the initializers are also hashed, this also provides checking for default arguments to methods. llvm-svn: 305543
-
Rui Ueyama authored
llvm-svn: 305542
-
Rui Ueyama authored
This patch should fix sanitizer-x86_64-linux-fast bot. The problem was that the contents of this stream are aligned to 4 byte, and the paddings were created just by incrementing `Offset`, so paddings had undefined values. When the entire stream is written to an output, it triggered msan. llvm-svn: 305541
-
Eric Fiselier authored
C99 at least. C89 still fails due to the use of block comments. NOTE: Having libc++ on the include path when compiling C is not recommended or ever really supported. However it happens often enough that this change is warrented. llvm-svn: 305539
-
Craig Topper authored
llvm-svn: 305538
-
Eugene Zelenko authored
[BinaryFormat, Option, TableGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). llvm-svn: 305537
-
Eric Fiselier authored
It seems conceivable that a user would need to get a coroutine handle having only a const reference to the promise_type, for example from within a const member function of the promise. This patch allows that use case. A coroutine_handle<const T> can be used in essentially the same way a coroutine_handle<T>, ie to start and destroy the coroutine. The constness of the promise doesn't/shouldn't propagate to the handle. llvm-svn: 305536
-
Evgeniy Stepanov authored
llvm-svn: 305535
-
Evgeniy Stepanov authored
llvm-svn: 305534
-
Evgeniy Stepanov authored
Implement ControlFlowIntegrity for indirect function calls in ThinLTO. Design follows the RFC in llvm-dev, see https://groups.google.com/d/msg/llvm-dev/MgUlaphu4Qc/kywu0AqjAQAJ llvm-svn: 305533
-
Zachary Turner authored
llvm-svn: 305532
-
Zachary Turner authored
NFC, just adds a helper function to reduce boilerplate. llvm-svn: 305531
-
Xinliang David Li authored
This is a NFC code refactoring and interface cleanup. This paves the way to enable outlining-only mode for the partial inliner. llvm-svn: 305530
-
Zachary Turner authored
llvm-svn: 305529
-
Zachary Turner authored
llvm-svn: 305528
-
Ahmed Bougacha authored
This reverts commit r305468, as it caused PR33475. llvm-svn: 305527
-
Zachary Turner authored
When dumping module source files, also dump checksums. llvm-svn: 305526
-
Tom Stellard authored
Summary: We were using the system compiler to run the test suite. Reviewers: hansw Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D34246 llvm-svn: 305525
-
Zachary Turner authored
This was regressed in a previous patch that re-wrote the dumper, and I'm incrementally adding back the pieces that are missing. llvm-svn: 305524
-
Alfred Huang authored
llvm-svn: 305523
-
Matthias Braun authored
We have to use ASSERT_XXX instead of EXPECT_XXX if the test cannot continue in the failure case. llvm-svn: 305522
-
Kostya Serebryany authored
[libFuzzer] change the default max_len from 64 to 4096. This will affect cases where libFuzzer is run w/o initial corpus or with a corpus of very small items. llvm-svn: 305521
-
Zachary Turner authored
llvm-svn: 305520
-
Matthias Braun authored
llvm-svn: 305519
-
Zachary Turner authored
Obviously the paths are going to be machine dependent, so don't try to match them in the test. llvm-svn: 305518
-
Zachary Turner authored
This resubmits commit c0c249e9f2ef83e1d1e5f166b50673d92f3579d7. It was broken due to some weird template issues, which have since been fixed. llvm-svn: 305517
-
Matthias Braun authored
Re-apply r276044/r279124. Trying to reproduce or disprove the ppc64 problems reported in the stage2 build last time, which I cannot reproduce right now. This is a variant of scavengeRegister() that works for enterBasicBlockEnd()/backward(). The benefit of the backward mode is that it is not affected by incomplete kill flags. This patch also changes PrologEpilogInserter::doScavengeFrameVirtualRegs() to use the register scavenger in backwards mode. Differential Revision: http://reviews.llvm.org/D21885 llvm-svn: 305516
-
Matthias Braun authored
llvm-svn: 305515
-
Rafael Espindola authored
llvm-svn: 305514
-