summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Remove unused variable.Adrian Prantl2015-10-021-1/+0
| | | | llvm-svn: 249155
* [OpenMP] Capture global variables in target regions.Samuel Antao2015-10-026-3/+251
| | | | | | | | | All global variables that are not enclosed in a declare target region must be captured in the target region as local variables do. Currently, there is no support for declare target, so this patch adds support for capturing all the global variables used in a the target region. llvm-svn: 249154
* [ARM] Typo. NFC.Chad Rosier2015-10-021-1/+1
| | | | llvm-svn: 249153
* constify ClassTemplatePartialSpecializationDecl::getInstantiatedFromMember ↵Yaron Keren2015-10-021-4/+4
| | | | | | and VarTemplatePartialSpecializationDecl::getInstantiatedFromMember. llvm-svn: 249152
* Bail-out early if all statements have been simplified awayMichael Kruse2015-10-022-12/+12
| | | | | | Treat the scop as invalid instead of creating dummy domains. llvm-svn: 249151
* [ELF2] Fix mixed-Endian handling in DynamicSection<ELFT>::writeToHal Finkel2015-10-023-2/+36
| | | | | | | | | | | | | | Using the "raw" Elf64_Dyn or Elf32_Dyn structures in DynamicSection<ELFT>::writeTo does not correctly handle mixed-Endian situations. Instead, use the corresponding llvm::object::* structures which have Endian-converting members (like the rest of the code). This fixes all currently-failing elf2 tests when running on big-Endian PPC64/Linux (I've added a big-Endian test case which should fail on little-Endian machines in the same way that test/elf2/shared.s failed on big-Endian machines prior to this change). llvm-svn: 249150
* Ignore --version-script.Rafael Espindola2015-10-021-0/+1
| | | | llvm-svn: 249149
* [OpenMP] Target directive host codegen.Samuel Antao2015-10-025-7/+1035
| | | | | | | | | | | This patch implements the outlining for offloading functions for code annotated with the OpenMP target directive. It uses a temporary naming of the outlined functions that will have to be updated later on once target side codegen and registration of offloading libraries is implemented - the naming needs to be made unique in the produced library. llvm-svn: 249148
* Reapply r249121 : "[FastISel][x86] Teach how to select SSE2/AVX bitcasts ↵Andrea Di Biagio2015-10-023-0/+513
| | | | | | | | | | | | | | | | | | | | | | | between 128/256-bit vector types." 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. Originally reviewed here: http://reviews.llvm.org/D13347 llvm-svn: 249147
* Allow -soname arg in addition to -soname=argEd Maste2015-10-021-0/+1
| | | | | | Differential Revision: http://reviews.llvm.org/D13387 llvm-svn: 249146
* [FIX] Repair broken commitJohannes Doerfert2015-10-022-60/+4
| | | | | | | The last invariant load fix was based on a later patch not polly/master, thus needs to be adjusted. llvm-svn: 249145
* Ignore --enable-new-dtags and --no-fatal-warningsEd Maste2015-10-021-0/+2
| | | | | | | Found while testing a FreeBSD base system build with lld. Ignored for now while we continue to identify missing options and functionality. llvm-svn: 249144
* [DarwinDriver] Reapply: Use -lto_library to specify the path for libLTO.dylibBruno Cardoso Lopes2015-10-024-9/+56
| | | | | | | | | | | | | | | | | | | | | | Reapply r248935. Usually, when using LTO with a clang installation newer than the system's one, there's a libLTO.dylib version mismatch and LTO fails. One solution to this is to make ld point to the right libLTO.dylib by changing DYLD_LIBRARY_PATH. However, ld64 supports specifying the complete path to the desired libLTO.dylib through the -lto_library option. This commit adds support for the clang driver to use this option whenever it's capable of finding a libLTO.dylib in clang's installed library directory. This way, we don't need to rely on DYLD_LIBRARY_PATH nor get caught by version mismatches. Differential Revision: http://reviews.llvm.org/D13117 rdar://problem/7363476 llvm-svn: 249143
* Make test more resilient to FastIsel changes. NFC.Andrea Di Biagio2015-10-021-6/+6
| | | | | | | | | | | | | | | | | | | | | | Currently FastISel doesn't know how to select vector bitcasts. During instruction selection, fast-isel always falls back to SelectionDAG every time it encounters a vector bitcast. As a consequence of this, all the 'packed vector shift by immedate count' test cases in avx2-builtins.c are optimized by the DAGCombiner. In particular, the DAGCombiner would always fold trivial stack loads of constant shift counts into the operands of packed shift builtins. This behavior would start changing as soon as I reapply revision 249121. That revision would teach x86 fast-isel how to select bitcasts between vector types of the same size. As a consequence of that change, fast-isel would less often fall back to SelectionDAG. More importantly, DAGCombiner would no longer be able to simplify the code by folding the stack reload of a constant. No functional change. llvm-svn: 249142
* Revert "Add support for the new mips-mti-linux toolchain."Vasileios Kalintiris2015-10-0217-296/+25
| | | | | | | This reverts commit r249137 because it broke the Windows buildbots and a Linux buildbot for LLD. llvm-svn: 249141
* Implement ACLE 2.0 macros of chapters 6.6 and 6.7 for [ARM] and [Aarch64] ↵Alexandros Lamprineas2015-10-025-7/+24
| | | | | | | | targets. Differential Revision: http://reviews.llvm.org/D12633 llvm-svn: 249140
* [FIX] Do not hoist from inside a non-affine subregionJohannes Doerfert2015-10-023-4/+67
| | | | | | | | We have to skip accesses in non-affine subregions during hoisting as they might not be executed under the same condition as the entry of the non-affine subregion. llvm-svn: 249139
* Fix bogus comment.Douglas Katzman2015-10-021-1/+1
| | | | llvm-svn: 249138
* Add support for the new mips-mti-linux toolchain.Vasileios Kalintiris2015-10-0217-25/+296
| | | | | | | | | | | | | | | | | | | | Summary: This new toolchain uses primarily LLVM-based tools, eg. compiler-rt, lld, libcxx, etc. Because of this, it doesn't require neither an existing GCC installation nor a GNU environment. Ideally, in a follow-up patch we would like to add a new --{llvm|clang}-toolchain option (similar to --gcc-toolchain) in order to allow the use of this toolchain with independent Clang builds. For the time being, we use the --sysroot option just to test the correctness of the paths generated by the driver. Reviewers: atanasyan, dsanders, rsmith Subscribers: jfb, tberghammer, danalbert, srhines, dschuff, cfe-commits Differential Revision: http://reviews.llvm.org/D13340 llvm-svn: 249137
* Taking a stab at fixing failing build bots that use make. Unfortunately, the ↵Aaron Ballman2015-10-021-4/+3
| | | | | | | | build logs do not point to much useful information for tracking this down, such as: http://lab.llvm.org:8011/builders/clang-x86_64-debian-fast/builds/31782/steps/compile/logs/stdio llvm-svn: 249136
* Ignore options used during a clang build.Rafael Espindola2015-10-021-0/+3
| | | | llvm-svn: 249135
* Accept some options with both -- and -.Rafael Espindola2015-10-021-2/+2
| | | | | | This matches what both gold and bfd ld accept. llvm-svn: 249134
* Hopefully rectifying a build bot issue with:Aaron Ballman2015-10-022-1/+3
| | | | | | | | 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
* Earlier creation of ScopStmt objectsMichael Kruse2015-10-0217-158/+212
| | | | | | | | | | | | | | | | 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
* Move functions declared in Stmt{ObjC,CXX}.h and OpenMPClause.h intoJames Y Knight2015-10-026-1258/+1334
| | | | | | | | | | | 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
* Adding a new clang-tidy module to house CERT-specific checkers, and map ↵Aaron Ballman2015-10-028-3/+94
| | | | | | 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
* Divide TraverseInitListExpr to a different function for each form.Angel Garcia Gomez2015-10-021-17/+25
| | | | | | | | | | | | Summary: create TraverseSyntacticInitListExpr and TraverseSemanticInitListExpr. Reviewers: rsmith, klimek Subscribers: klimek, cfe-commits, alexfh Differential Revision: http://reviews.llvm.org/D13249 llvm-svn: 249129
* Simplify. NFC.Rafael Espindola2015-10-021-2/+2
| | | | llvm-svn: 249128
* Handle trailing underscores on modernize-loop-convert variable namer.Angel Garcia Gomez2015-10-023-0/+27
| | | | | | | | | | | | 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
* Hand down referenced & globally mapped values to the subfunctionJohannes Doerfert2015-10-024-9/+116
| | | | | | | | | | | | | | | | | | | | | | 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
* [NFC] Make the ScopDetection analysis a member of the Scop classJohannes Doerfert2015-10-022-30/+26
| | | | llvm-svn: 249125
* Revert: [FastISel][x86] Teach how to select SSE2/AVX bitcasts between ↵Andrea Di Biagio2015-10-023-513/+0
| | | | | | | | | 128/256-bit vector types. 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
* [mips][microMIPS] Fix an issue with selecting sqrt instruction in LLVM backendZoran Jovanovic2015-10-022-5/+15
| | | | | | Differential Revision: http://reviews.llvm.org/D13235 llvm-svn: 249123
* Use ld.lld2 as a argv[0] alias.Rafael Espindola2015-10-023-3/+6
| | | | | | | | The reason for the name is so that we can run ./build/bin/clang -fuse-ld=lld2 test.o -o t llvm-svn: 249122
* [FastISel][x86] Teach how to select SSE2/AVX bitcasts between 128/256-bit ↵Andrea Di Biagio2015-10-023-0/+513
| | | | | | | | | | | | | | | | | | | | | | | vector types. 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
* Change expected stop reason in TestInferiorAssert for Android API <= 16Tamas Berghammer2015-10-021-1/+5
| | | | llvm-svn: 249120
* Fix several issues around .ARM.exidx section handlingTamas Berghammer2015-10-023-46/+71
| | | | | | | | | | | | | | * 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
* ELF2: Merge duplicates using lambdas. NFC.Rui Ueyama2015-10-021-46/+26
| | | | llvm-svn: 249118
* Teach 'type lookup' to pull types from clang modules; also add a test caseEnrico Granata2015-10-024-16/+110
| | | | llvm-svn: 249117
* Be slightly more permissive when checking for type-erased blocks.Bob Wilson2015-10-022-1/+9
| | | | | | This is a patch from Doug that was inadvertently omitted from r241543. llvm-svn: 249116
* [CMake] Fixing clang bootstrap to use LLVM_RUNTIME_OUTPUT_INTDIR instead of ↵Chris Bieneman2015-10-021-6/+6
| | | | | | | | CMAKE_BINARY_DIR. This should make bootstrap builds work with multi-configuration generators. llvm-svn: 249115
* PR24921: checking explicitly-specified template arguments when matching aRichard Smith2015-10-022-6/+22
| | | | | | | 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
* Explicitly delete a function that is supposed to never be called.Richard Smith2015-10-021-1/+1
| | | | llvm-svn: 249113
* DenseMap: we're trying to call the reserved global placement allocationRichard Smith2015-10-021-13/+13
| | | | | | | function here; use "::new" to avoid accidentally picking up a class-specific operator new. llvm-svn: 249112
* [LLD] Fix Clang-tidy modernize-use-nullptr warnings; other minor cleanups.Rui Ueyama2015-10-025-21/+6
| | | | | | Patch from Eugene Zelenko! llvm-svn: 249111
* dsymutil: Also ignore the ByteSize when building the DeclContext cache forAdrian Prantl2015-10-025-60/+77
| | | | | | | | clang modules. Forward decls of ObjC interfaces don't have a bytesize. llvm-svn: 249110
* Fix the *unchecked* commit.NAKAMURA Takumi2015-10-011-1/+1
| | | | llvm-svn: 249100
* Make the SCoP generation resistent wrt. error blocksJohannes Doerfert2015-10-013-39/+215
| | | | | | | | | | | 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
* Allow user defined error functionsJohannes Doerfert2015-10-013-8/+134
| | | | | | | | | | | | 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
* Fix the SSE4 byte sign extension in a cleaner way, and more thoroughlyChandler Carruth2015-10-019-21/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
OpenPOWER on IntegriCloud