summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [TableGen] Change a couple methods to return an ArrayRef instead of a const ↵Craig Topper2015-07-061-2/+2
| | | | | | std::vector reference. NFC llvm-svn: 241431
* [TableGen] Change a couple methods to return an ArrayRef instead of a const ↵Craig Topper2015-07-064-6/+6
| | | | | | std::vector reference. NFC llvm-svn: 241430
* [OPENMP 4.0] Codegen for 'omp cancel' directive.Alexey Bataev2015-07-064-17/+172
| | | | | | | | | | Add the next codegen for 'omp cancel' directive: if (__kmpc_cancel()) { __kmpc_cancel_barrier(); <exit construct>; } llvm-svn: 241429
* PR24030, PR24033: Consistently check whether a new declaration conflicts withRichard Smith2015-07-064-31/+169
| | | | | | | | | | an existing using shadow declaration if they define entities of the same kind in different namespaces. We'd previously check this consistently if the using-declaration came after the other declaration, but not if it came before. llvm-svn: 241428
* Make this test a bit more interesting.Rafael Espindola2015-07-061-1/+4
| | | | | | Before every test was using a section with an address of zero. llvm-svn: 241427
* COFF: Set TLS table header field.Rui Ueyama2015-07-062-0/+49
| | | | | | | | | TLS table header field is supposed to have address and size of TLS table. The linker doesn't have to understand what TLS table is. TLS table's name is always "_tls_used", so if there's that symbol, the linker simply sets that symbol's RVA to the header. The size of the TLS table is always 40 bytes. llvm-svn: 241426
* DR1909: Diagnose all invalid cases of a class member sharing its name with ↵Richard Smith2015-07-0611-40/+90
| | | | | | the class. llvm-svn: 241425
* When we see something that looks like a constructor with a return type, only ↵Richard Smith2015-07-065-15/+12
| | | | | | issue one error, not two. llvm-svn: 241424
* Untabify.NAKAMURA Takumi2015-07-063-9/+9
| | | | llvm-svn: 241423
* change CHECK to CHECK-LABEL for more precisionSanjay Patel2015-07-051-1/+1
| | | | llvm-svn: 241422
* Mark clang/test/Modules/signal.m as REQUIRES:crash-recovery.NAKAMURA Takumi2015-07-051-1/+1
| | | | llvm-svn: 241421
* COFF: Make ArchiveFile::getMember thread-safe.Rui Ueyama2015-07-051-0/+5
| | | | | | | This function is called SymbolTable::readObjects, so in order to parallelize that function, we have to make this function thread-safe. llvm-svn: 241420
* remove unnecessary test specificationsSanjay Patel2015-07-051-5/+4
| | | | llvm-svn: 241419
* minimize test case and remove unnecessary opt passesSanjay Patel2015-07-051-65/+24
| | | | llvm-svn: 241418
* COFF: Use CAS to update Sym->Body.Rui Ueyama2015-07-051-29/+41
| | | | | | | Note that the linker is not multi-threaded yet. This is a preparation for that. llvm-svn: 241417
* COFF: Use atomic pointers in preparation for parallelizing.Rui Ueyama2015-07-054-12/+14
| | | | | | | | | | | | | In the new design, mutation of Symbol pointers is the name resolution operation. This patch makes them atomic pointers so that they can be mutated by multiple threads safely. I'm going to use atomic compare-exchange on these pointers. dyn_cast<> doesn't recognize atomic pointers as pointers, so we need to call load(). This is unfortunate, but in other places automatic type conversion works fine. llvm-svn: 241416
* remove unnecessary temp variable; NFCISanjay Patel2015-07-051-5/+4
| | | | llvm-svn: 241415
* Verifier: Forbid comdats on linker declarations.Peter Collingbourne2015-07-053-0/+13
| | | | | | Differential Revision: http://reviews.llvm.org/D10945 llvm-svn: 241414
* IR: Do not consider available_externally linkage to be linker-weak.Peter Collingbourne2015-07-0514-71/+55
| | | | | | | | | | | | | | | From the linker's perspective, an available_externally global is equivalent to an external declaration (per isDeclarationForLinker()), so it is incorrect to consider it to be a weak definition. Also clean up some logic in the dead argument elimination pass and clarify its comments to better explain how its behavior depends on linkage, introduce GlobalValue::isStrongDefinitionForLinker() and start using it throughout the optimizers and backend. Differential Revision: http://reviews.llvm.org/D10941 llvm-svn: 241413
* use range-based for loops; NFCISanjay Patel2015-07-051-8/+7
| | | | llvm-svn: 241412
* [TargetLowering] StringRefize asm constraint getters.Benjamin Kramer2015-07-0526-111/+81
| | | | | | | | There is some functional change here because it changes target code from atoi(3) to StringRef::getAsInteger which has error checking. For valid constraints there should be no difference. llvm-svn: 241411
* [X86][SSE3] Just use an explicit SSE3 target attribute - not a cpu type.Simon Pilgrim2015-07-051-1/+1
| | | | | | Merged arch/target into a specific triple - we had i686 and x86_64 targets overriding each other.... llvm-svn: 241410
* [X86][SSE2] Just use an explicit SSE2 target attribute - not a cpu type.Simon Pilgrim2015-07-051-1/+1
| | | | | | corei7 is capable of a lot more than just SSE2.... llvm-svn: 241409
* [RuntimeDyld] Add comment documenting the behavior change in r241383.Lang Hames2015-07-051-0/+4
| | | | llvm-svn: 241408
* Document problems when trying libclang tests on Windows 7.Yaron Keren2015-07-051-1/+2
| | | | llvm-svn: 241407
* [x86][AVX512] add Multiply High OpAsaf Badouh2015-07-058-0/+327
| | | | | | | | | include encoding and intrinsics tests. review http://reviews.llvm.org/D10896 llvm-svn: 241406
* Add the missing return statements from revision 241399.Nemanja Ivanovic2015-07-051-2/+3
| | | | llvm-svn: 241405
* [X86] Fix incorrect/inefficient pushw encodings for x86-64 targetsMichael Kuperstein2015-07-055-9/+49
| | | | | | | | | | | | | Correctly support assembling "pushw $imm8" on x86-64 targets. Also some cleanup of the PUSH instructions (PUSH64i16 and PUSHi16 actually represent the same instruction) This fixes PR23996 Patch by: david.l.kreitzer@intel.com Differential Revision: http://reviews.llvm.org/D10878 llvm-svn: 241404
* [CMake] clang-*.*: Prevent versioning if the buildhost is targeting for Win32.NAKAMURA Takumi2015-07-051-1/+5
| | | | | | | | | | | | | | CMake-2.8.12 is hardcoded to create symlinked clang.exe if the target property VERSION is present and the host is not Win32. Then clang.exe-*.* is generated and clang.exe is symlinked to it. lrwxrwxrwx. 1 bb bb 13 Jul 5 18:04 clang.exe -> clang.exe-3.7 -rwxr-x---. 1 bb bb 244763 Jul 5 18:04 clang++.exe -rwxr-x---. 1 bb bb 244763 Jul 5 18:04 clang.exe-3.7 It made me unhappy when built binaries were copied to the Windows target. FIXME: Could we just remove the target property VERSION in add_llvm_executable() ? llvm-svn: 241403
* [CMake] add_llvm_symbol_exports: Use Python oneliner instead of "cmd.exe /c ↵NAKAMURA Takumi2015-07-051-13/+2
| | | | | | type" to generate *.def. llvm-svn: 241402
* clang/test/CodeGen/builtins-ppc-vsx.c: Fix for -Asserts.NAKAMURA Takumi2015-07-051-8/+8
| | | | llvm-svn: 241401
* Enable this test for PPC64.Jay Foad2015-07-051-1/+1
| | | | llvm-svn: 241400
* Add missing builtins to altivec.h for ABI compliance (vol. 2)Nemanja Ivanovic2015-07-054-7/+419
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch corresponds to review: http://reviews.llvm.org/D10875 The bulk of the second round of additions to altivec.h. The following interfaces were added: vector double vec_floor(vector double) vector double vec_madd(vector double, vector double, vector double) vector float vec_msub(vector float, vector float, vector float) vector double vec_msub(vector double, vector double, vector double) vector float vec_mul(vector float, vector float) vector double vec_mul(vector double, vector double) vector float vec_nmadd(vector float, vector float, vector float) vector double vec_nmadd(vector double, vector double, vector double) vector double vec_nmsub(vector double, vector double, vector double) vector double vec_nor(vector double, vector double) vector double vec_or(vector double, vector double) vector float vec_rint(vector float) vector double vec_rint(vector double) vector float vec_nearbyint(vector float) vector double vec_nearbyint(vector double) vector float vec_sqrt(vector float) vector double vec_sqrt(vector double) vector double vec_rsqrte(vector double) vector double vec_sel(vector double, vector double, vector unsigned long long) vector double vec_sel(vector double, vector double, vector unsigned long long) vector double vec_sub(vector double, vector double) vector double vec_trunc(vector double) vector double vec_xor(vector double, vector double) vector double vec_xor(vector double, vector bool long long) vector double vec_xor(vector bool long long, vector double) New VSX paths for the following interfaces: vector float vec_madd(vector float, vector float, vector float) vector float vec_nmsub(vector float, vector float, vector float) vector float vec_rsqrte(vector float) vector float vec_trunc(vector float) vector float vec_floor(vector float) llvm-svn: 241399
* Add missing builtins to the PPC back end for ABI compliance (vol. 2)Nemanja Ivanovic2015-07-053-0/+43
| | | | | | | | | This patch corresponds to review: http://reviews.llvm.org/D10874 Back end portion of the second round of additions to altivec.h. llvm-svn: 241398
* COFF: Do not warn on identical /merge options.Rui Ueyama2015-07-041-3/+6
| | | | llvm-svn: 241397
* COFF: Implement /merge option.Rui Ueyama2015-07-046-10/+103
| | | | | | /merge:.foo=.bar makes the linker to merge section .foo with section .bar. llvm-svn: 241396
* use range-based for loops; NFCISanjay Patel2015-07-041-20/+20
| | | | llvm-svn: 241395
* [X86][SSE] Improved i8/i16 to f64 uint2fp vector conversionsSimon Pilgrim2015-07-042-110/+55
| | | | | | Followup to D10433 and D10589 that fixes i8/i16 uint2fp vector conversions by zero extending to i32 and using the sint2fp path (unless the target does actually support uint2fp). llvm-svn: 241394
* use valid bits to avoid unnecessary machine trace metric recomputationsSanjay Patel2015-07-041-5/+10
| | | | | | | | | Although this does cut the number of traces recomputed by ~10% for the test case mentioned in http://reviews.llvm.org/D10460, it doesn't make a dent in the overall performance. That example needs to be more selective when invalidating traces. llvm-svn: 241393
* Fix spelling, NFC.Yaron Keren2015-07-041-1/+1
| | | | llvm-svn: 241392
* COFF: Numerous fixes for interaction between LTO and weak externals.Peter Collingbourne2015-07-0414-36/+146
| | | | | | | | | | | | | | | | | | | | We were previously hitting assertion failures in the writer in cases where a regular object file defined a weak external symbol that was defined by a bitcode file. Because /export and /entry name mangling were implemented using weak externals, the same problem affected mangled symbol names in bitcode files. The underlying cause of the problem was that weak external symbols were being resolved before doing LTO, so the symbol table may have contained stale references to bitcode symbols. The fix here is to defer weak external symbol resolution until after LTO. Also implement support for weak external symbols in bitcode files by modelling them as replaceable DefinedBitcode symbols. Differential Revision: http://reviews.llvm.org/D10940 llvm-svn: 241391
* Use string::find(char) for single character strings.Bruce Mitchener2015-07-046-12/+12
| | | | | | | | | | | | Summary: Use string::find(char) for single character strings. Reviewers: abidh, ki.stfu, clayborg Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D10943 llvm-svn: 241390
* LTO: expose LTO_SYMBOL_ALIAS, which indicates that the symbol is an alias.Peter Collingbourne2015-07-042-2/+6
| | | | | | | | This is needed for COFF linkers to distinguish between weak external aliases and regular symbols with LLVM weak linkage, which are represented as strong symbols in COFF. llvm-svn: 241389
* Revert "COFF: Do not use VirtualSize section header field for directive ↵Rui Ueyama2015-07-041-2/+1
| | | | | | | | sections." This reverts commit r241386 because the issue is addressed in LLVM (r241387). llvm-svn: 241388
* Object/COFF: Do not rely on VirtualSize being 0 in object files.Rui Ueyama2015-07-041-8/+4
| | | | llvm-svn: 241387
* COFF: Do not use VirtualSize section header field for directive sections.Rui Ueyama2015-07-041-1/+2
| | | | | | | | | Looks like clang-cl sets a bogus value to the field, which makes getSectionContents() to truncate section contents. This patch directly uses SizeOfRawData field instead of VirtualSize to see if this can make buildbot green. llvm-svn: 241386
* Use map::insert instead of checking existence of a key and insert. NFC.Rui Ueyama2015-07-041-4/+5
| | | | llvm-svn: 241385
* COFF: Print directive section contents if /verbose.Rui Ueyama2015-07-041-1/+5
| | | | llvm-svn: 241384
* [RuntimeDyld] Skip relocations for external symbols with 64-bit address ~0ULL.Lang Hames2015-07-044-21/+84
| | | | | | | | | | | Requested by Eugene Rozenfeld of the LLILC team, this feature allows JIT clients to skip relocations for selected external symbols by returning ~0ULL from their symbol resolver. If this value is returned for a given symbol, RuntimeDyld will skip all relocations for that symbol. The client will be responsible for applying the skipped relocations manually before the code is executed. llvm-svn: 241383
* COFF: Fix bug in garbage collector.Rui Ueyama2015-07-042-2/+7
| | | | | | | GC root may have non-regular defined symbols, such as DefinedImportThunk, so this cast<> was a wrong assumption. llvm-svn: 241382
OpenPOWER on IntegriCloud