- Oct 02, 2015
-
-
Rafael Espindola authored
This matches what both gold and bfd ld accept. llvm-svn: 249134
-
Aaron Ballman authored
http://bb.pgr.jp/builders/i686-mingw32-RA-on-linux/builds/2833/steps/build_llvmclang/logs/stdio Also, drive-by comment fix in a makefile. llvm-svn: 249133
-
Michael Kruse authored
This moves the construction of ScopStmt to the beginning of the ScopInfo pass. The late creation was a result of the earlier separation of ScopInfo and TempScopInfo. This will avoid introducing more ScopStmt-like maps in future commits. The AccFuncMap will also be removed in some future commit. DomainMap might also be included into ScopStmt. The order in which ScopStmt are created changes and initially creates empty statements that are removed in a simplification. Differential Revision: http://reviews.llvm.org/D13341 llvm-svn: 249132
-
James Y Knight authored
their associated .cpp file. Previous refactorings long long ago had split out the above categories of classes from Stmt.h into their own header files, but failed to also split the Stmt.cpp implementation file similarly. Do so for readability's sake. llvm-svn: 249131
-
Aaron Ballman authored
Adding a new clang-tidy module to house CERT-specific checkers, and map existing checkers to CERT secure coding rules and recommendations for both C (https://www.securecoding.cert.org/confluence/display/c/SEI+CERT+C+Coding+Standard) and C++ (https://www.securecoding.cert.org/confluence/pages/viewpage.action?pageId=637). llvm-svn: 249130
-
Angel Garcia Gomez authored
Summary: create TraverseSyntacticInitListExpr and TraverseSemanticInitListExpr. Reviewers: rsmith, klimek Subscribers: klimek, cfe-commits, alexfh Differential Revision: http://reviews.llvm.org/D13249 llvm-svn: 249129
-
Rafael Espindola authored
llvm-svn: 249128
-
Angel Garcia Gomez authored
Summary: https://llvm.org/bugs/show_bug.cgi?id=24961. Reviewers: klimek Subscribers: cfe-commits, alexfh Differential Revision: http://reviews.llvm.org/D13381 llvm-svn: 249127
-
Johannes Doerfert authored
If a value is globally mapped (IslNodeBuilder::ValueMap) and referenced in the code that will be put into a subfunction, we hand down the new value to the subfunction. This patch also removes code that handed down all invariant loads to the subfunction. Instead, only needed invariant loads are given to the subfunction. There are two possible reasons for an invariant load to be handed down: 1) The invariant load is used in a block that is placed in the subfunction but which is not the parent of the load. In this case, the scalar access that will read the loaded value, will cause its base pointer (the preloaded value) to be handed down to the subfunction. 2) The invariant load is defined and used in a block that is placed in the subfunction. With this patch we will hand down the preloaded value to the subfunction as the invariant load is globally mapped to that value. llvm-svn: 249126 -
Johannes Doerfert authored
llvm-svn: 249125
-
Andrea Di Biagio authored
r249121 caused a Clang test failure (avx2-buitins.c). Revert r249121 while I keep investigating on the reason why that test failed. llvm-svn: 249124
-
Zoran Jovanovic authored
Differential Revision: http://reviews.llvm.org/D13235 llvm-svn: 249123
-
Rafael Espindola authored
The reason for the name is so that we can run ./build/bin/clang -fuse-ld=lld2 test.o -o t llvm-svn: 249122
-
Andrea Di Biagio authored
This patch teaches FastIsel the following two things: 1) On SSE2, no instructions are needed for bitcasts between 128-bit vector types; 2) On AVX, no instructions are needed for bitcasts between 256-bit vector types. Example: %1 = bitcast <4 x i31> %V to <2 x i64> Before (-fast-isel -fast-isel-abort=1): FastIsel miss: %1 = bitcast <4 x i31> %V to <2 x i64> Now we don't fall back to SelectionDAG and we correctly fold that computation propagating the register associated to %V. Differential Revision: http://reviews.llvm.org/D13347 llvm-svn: 249121
-
Tamas Berghammer authored
llvm-svn: 249120
-
Tamas Berghammer authored
* Use .ARM.exidx as a fallback unwind plan for non-call site when the instruction emulation based unwind failed. * Work around an old compiler issue where the compiler isn't sort the entries in .ARM.exidx based on their address. * Fix unwind info parsing when the virtual file address >= 0x80000000 * Fix bug in unwind info parsing when neither lr nor pc is explicitly restored. Differential revision: http://reviews.llvm.org/D13380 llvm-svn: 249119
-
Rui Ueyama authored
llvm-svn: 249118
-
Enrico Granata authored
llvm-svn: 249117
-
Bob Wilson authored
This is a patch from Doug that was inadvertently omitted from r241543. llvm-svn: 249116
-
Chris Bieneman authored
This should make bootstrap builds work with multi-configuration generators. llvm-svn: 249115
-
Richard Smith authored
partial specialization can perform conversions on the argument. Be sure we start again from the original argument when checking each possible template. llvm-svn: 249114
-
Richard Smith authored
llvm-svn: 249113
-
Richard Smith authored
function here; use "::new" to avoid accidentally picking up a class-specific operator new. llvm-svn: 249112
-
Rui Ueyama authored
Patch from Eugene Zelenko! llvm-svn: 249111
-
Adrian Prantl authored
clang modules. Forward decls of ObjC interfaces don't have a bytesize. llvm-svn: 249110
-
NAKAMURA Takumi authored
llvm-svn: 249100
-
Johannes Doerfert authored
When error blocks are not terminated by an unreachable they have successors that might only be reachable via error blocks. Additionally, branches in error blocks are not checked during SCoP detection, thus we might not be able to handle them. With this patch we do not try to model error block exit conditions. Anything that is only reachable via error blocks is ignored too, as it will not be executed in the optimized version of the SCoP anyway. llvm-svn: 249099
-
Johannes Doerfert authored
The user can provide function names with -polly-error-functions=name1,name2,name3 that will be treated as error functions. Any call to them is assumed not to be executed. This feature is mainly for developers to play around with the new "error block" feature. llvm-svn: 249098 -
Chandler Carruth authored
test that our intrinsics behave the same under -fsigned-char and -funsigned-char. This further testing uncovered that AVX-2 has a broken cmpgt for 8-bit elements, and has for a long time. This is fixed in the same way as SSE4 handles the case. The other ISA extensions currently work correctly because they use specific instruction intrinsics. As soon as they are rewritten in terms of generic IR, they will need to add these special casts. I've added the necessary testing to catch this however, so we shouldn't have to chase it down again. I considered changing the core typedef to be signed, but that seems like a bad idea. Notably, it would be an ABI break if anyone is reaching into the innards of the intrinsic headers and passing __v16qi on an API boundary. I can't be completely confident that this wouldn't happen due to a macro expanding in a lambda, etc., so it seems much better to leave it alone. It also matches GCC's behavior exactly. A fun side note is that for both GCC and Clang, -funsigned-char really does change the semantics of __v16qi. To observe this, consider: % cat x.cc #include <smmintrin.h> #include <iostream> int main() { __v16qi a = { 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; __v16qi b = _mm_set1_epi8(-1); std::cout << (int)(a / b)[0] << ", " << (int)(a / b)[1] << '\n'; } % clang++ -o x x.cc && ./x -1, 1 % clang++ -funsigned-char -o x x.cc && ./x 0, 1 However, while this may be surprising, both Clang and GCC agree. Differential Revision: http://reviews.llvm.org/D13324 llvm-svn: 249097 -
Ivan Krasin authored
-test_single_input flag specifies a file name with test data. Review URL: http://reviews.llvm.org/D13359 Patch by Mike Aizatsky! llvm-svn: 249096
-
Sean Callanan authored
Eliminated redundant "constructors" for ClangExpressionVariable. The ClangExpressionVariable::CreateVariableInList functions looked cute, but caused more confusion than they solved. I removed them, and instead made sure that there are adequate facilities for easily adding newly-constructed ExpressionVariables to lists. I also made some of the constructors that are common be generic, so that it's possible to construct expression variables from generic places (like the ABI and ValueObject) without having to know the specifics about the class. llvm-svn: 249095 -
Michael J. Spencer authored
llvm-svn: 249093
-
Bruno Cardoso Lopes authored
When trying to optimize fortified library functions use the right location to insert new instructions in order to preserve correct def-use order. This fixes an issue where a misplaced instruction definition would happen to be *after* one of its use after a RAUW, forming invalid IR. This behavior was introduced by r227250. Differential Revision: http://reviews.llvm.org/D13301 rdar://problem/22802369 llvm-svn: 249092
-
Matt Arsenault authored
llvm-svn: 249091
-
Kaelyn Takata authored
With -fms-extensions it is possible to have a non-class record that is a template specialization cause an assertion failure via the call to Type::getAsCXXRecordDecl. Fixes PR 24246. llvm-svn: 249090
-
Rafael Espindola authored
llvm-svn: 249089
-
Colin LeMahieu authored
llvm-svn: 249088
-
Matt Arsenault authored
Replace LiveInterval usage with LiveVariables. LiveIntervals computes far more information than is needed for this pass which just needs to find if an SGPR is live out of the defining block. LiveIntervals are not usually available that early, requiring computing them twice which is very expensive. The extra run of LiveIntervals/LiveVariables/SlotIndexes was costing in total about 5% of compile time. Continuing to use LiveIntervals is problematic. It seems there is an option (early-live-intervals) to run the analysis about where it should go to avoid recomputing LiveVariables, but it seems to be completely broken with subreg liveness enabled. There are also problems from trying to recompute LiveIntervals since this seems to undo LiveVariables and clearing kill flags, causing TwoAddressInstructions to make bad decisions. Insert the pass right after live variables and preserve it. The tricky case to worry about might be phis since LiveVariables doesn't count a register as live out if in the successor block it is only used in a phi, but I don't think this is a concern right now because SIFixSGPRCopies replaces SGPR phis. llvm-svn: 249087
-
Joerg Sonnenberger authored
for "set" pseudo op in PIC mode. Differential Revision: http://reviews.llvm.org/D13173 llvm-svn: 249086
-
Zachary Turner authored
This was already being done when injecting the VBPtr, but not when injecting the VFPtr. This fixes a number of tests in LLDB's test suite. Reviewed by: David Majnemer Differential Revision: http://reviews.llvm.org/D13276 llvm-svn: 249085
-