- Jan 26, 2017
-
-
Alexey Bataev authored
it vectorizable. llvm-svn: 293162
-
Sean Callanan authored
llvm-svn: 293161
-
Chandler Carruth authored
with it. This code was dereferencing the PoisoningVH which isn't allowed once it is poisoned. But the code itself really doesn't need to access the pointer, it is just doing the safe stuff of clearing out data structures keyed on the pointer value. Change the code to use iterators to erase directly from a DenseMap. This is also substantially more efficient as it avoids lots of hashing and lookups to do the erasure. DenseMap supports iterating behind the iteration which is fairly easy to implement. Sadly, I don't have a test case here. I'm not even close and I don't know that I ever will be. The issue is that several of the tricky aspects of fixing this only show up when you cause the stack's SmallVector to be in *EXACTLY* the right location. I only ever got a reproduction for those with Clang, and only with *exactly* the right command line flags. Any adjustment, even to seemingly unrelated flags, would make partial and half-way solutions magically start to "work". In good news, all of this was caught with the LLVM test suite. Also, there is no *specific* code here that is untested, just that the old pattern of code won't immediately fail on any test case I've managed to contrive. llvm-svn: 293160
-
NAKAMURA Takumi authored
"this", aka class members, is not referred in the body. llvm-svn: 293159
-
Craig Topper authored
llvm-svn: 293158
-
Craig Topper authored
[AVX-512] Move the combine that runs combineBitcastForMaskedOp to the last DAG combine phase where I had originally meant to put it. llvm-svn: 293157
-
Craig Topper authored
[X86] When bitcasting INSERT_SUBVECTOR/EXTRACT_SUBVECTOR to match masked operations, use the correct type for the immediate operand. llvm-svn: 293156
-
Jonas Paulsson authored
Refactoring to remove duplications of this method. New method getOperandsScalarizationOverhead() that looks at the present unique operands and add extract costs for them. Old behaviour was to just add extract costs for one operand of the type always, which still happens in getArithmeticInstrCost() if no operands are provided by the caller. This is a good start of improving on this, but there are more places that can be improved by using getOperandsScalarizationOverhead(). Review: Hal Finkel https://reviews.llvm.org/D29017 llvm-svn: 293155
-
Marshall Clow authored
Use the new __has_feature(cxx_constexpr_string_builtins) for detection of the C-string intrinsics for constexpr support in std::char_traits. Thanks to Richard for the intrisic support. llvm-svn: 293154
-
Alexey Bataev authored
llvm-svn: 293153
-
Craig Topper authored
llvm-svn: 293152
-
Craig Topper authored
This intrinsic uses bit 0 and bit 4 of an immediate argument to determine which bits of its inputs to read. This patch uses this information to simplify the demanded elements of the input vectors. Differential Revision: https://reviews.llvm.org/D28979 llvm-svn: 293151
-
Taewook Oh authored
llvm-svn: 293150
-
Adam Nemet authored
Require aarch64 and avoid filename in YAML since it may require quotation. llvm-svn: 293149
-
Taewook Oh authored
llvm-svn: 293148
-
Adam Nemet authored
llvm-svn: 293147
-
Adam Nemet authored
The handler that deals with IR passed/missed/analysis remarks is extended to also handle the corresponding MIR remarks. The more thorough testing in done via llc (rL293113, rL293121). Here we just make sure that the functionality is accessible through clang. llvm-svn: 293146
-
Adam Nemet authored
It will be used from clang. llvm-svn: 293145
-
Rui Ueyama authored
llvm-svn: 293144
-
Rui Ueyama authored
Negative flags are still bit flags, so I think "not flag" is a very good name. llvm-svn: 293143
-
Rui Ueyama authored
llvm-svn: 293142
-
Rui Ueyama authored
llvm-svn: 293141
-
Jason Molenda authored
debugserver-mini can use Foundation. llvm-svn: 293140
-
Davide Italiano authored
Patch by Dmitry Mikulin. PR: 31735 Differential Revision: https://reviews.llvm.org/D29150 llvm-svn: 293139
-
Peter Collingbourne authored
Now we never append a number to the file name for task ID 0. This is similar to r293132 in the gold plugin. llvm-svn: 293138
-
Peter Collingbourne authored
llvm-svn: 293137
-
Chandler Carruth authored
factory functions for the two modes the loop unroller is actually used in in-tree: simplified full-unrolling and the entire thing including partial unrolling. I've also wired these up to nice names so you can express both of these being in a pipeline easily. This is a precursor to actually enabling these parts of the O2 pipeline. Differential Revision: https://reviews.llvm.org/D28897 llvm-svn: 293136
-
Jason Molenda authored
requires that this private framework be available - and it is not available earlier than macOS 10.12 - to build lldb), dlopen the framework binary on demand in debugserver. We're already using dlsym() to look up all the symbols so there is no need to use weak linking here. <rdar://problem/30158797> llvm-svn: 293135
-
Argyrios Kyrtzidis authored
Instead of using the location of the beginning '-'/'+'. This is consistent with location used for function decls and ObjC method calls where we use the base name as the location as well. llvm-svn: 293134
-
Chandler Carruth authored
directly walks the current loop structure verifying that a matching structure can be found in a freshly computed version. Also pull things out of containers when necessary once an issue is found and print them directly. This makes it substantially easier to debug verification failures as the process stops at the exact point in the loop nest where they diverge and has in easily accessed local variables (or printed to stderr already) the loops and other information needed to analyze the failure. Differential Revision: https://reviews.llvm.org/D29142 llvm-svn: 293133
-
Peter Collingbourne authored
Now we never append a number to the file name for task ID 0. Differential Revision: https://reviews.llvm.org/D29160 llvm-svn: 293132
-
Rui Ueyama authored
llvm-svn: 293131
-
Rui Ueyama authored
llvm-svn: 293130
-
Kostya Serebryany authored
llvm-svn: 293129
-
Kostya Serebryany authored
llvm-svn: 293128
-
Matt Arsenault authored
llvm-svn: 293127
-
Sanjoy Das authored
llvm-svn: 293126
-
Kostya Serebryany authored
[libFuzzer] simplify the code for __sanitizer_cov_trace_pc_guard and make sure it is not asan/msan-instrumented llvm-svn: 293125
-
Michael Kuperstein authored
Even when we don't create a remainder loop (that is, when we unroll by 2), we may duplicate nested loops into the remainder. This is complicated by the fact the remainder may itself be either inserted into an outer loop, or at the top level. In the latter case, we may need to create new top-level loops. Differential Revision: https://reviews.llvm.org/D29156 llvm-svn: 293124
-
Richard Smith authored
Rather than storing a single flat list of SourceLocations where the diagnostic state changes (in source order), we now store a separate list for each FileID in which there is a diagnostic state transition. (State for other files is built and cached lazily, on demand.) This has two consequences: 1) We can now sensibly support modules, and properly track the diagnostic state for modular headers (this matters when, for instance, triggering instantiation of a template defined within a module triggers diagnostics). 2) It's much faster than the old approach, since we can now just do a binary search on the offsets within the FileID rather than needing to call isBeforeInTranslationUnit to determine source order (which is surprisingly slow). For some pathological (but real world) files, this reduces total compilation time by more than 10%. For now, the diagnostic state points for modules are loaded eagerly. It seems feasible to defer this until diagnostic state information for one of the module's files is needed, but that's not part of this patch. llvm-svn: 293123
-