summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [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
* [X86] Add proper 64-bit mode checks to jrcxz and jcxz.Craig Topper2015-07-042-2/+10
| | | | llvm-svn: 241381
* AMDGPU: Fix indentation of switchMatt Arsenault2015-07-031-11/+12
| | | | llvm-svn: 241380
* COFF: Don't print warning message for identical /export options.Rui Ueyama2015-07-033-4/+22
| | | | llvm-svn: 241379
* [ELF] Fix ELF test cases. Do not provide content for bss sections.Simon Atanasyan2015-07-0386-133/+13
| | | | llvm-svn: 241378
* [ELFYAML] Fix handling SHT_NOBITS sections by obj2yaml/yaml2obj toolsSimon Atanasyan2015-07-036-4/+53
| | | | | | | | | | SHT_NOBITS sections do not have content in an object file. Now the yaml2obj tool does not accept `Content` field for such sections, and the obj2yaml tool does not attempt to read the section content from a file. Restore r241350 and r241352. llvm-svn: 241377
* COFF: Fix the case where an object defines a weak external and its alias.Peter Collingbourne2015-07-034-6/+36
| | | | | | | | | | This worked before, but only by accident, and only with assertions disabled. We ended up storing a DefinedRegular symbol in the WeakAlias field, and never using it as an Undefined. Differential Revision: http://reviews.llvm.org/D10934 llvm-svn: 241376
* Use a continue to reduce indentation.Rafael Espindola2015-07-031-19/+20
| | | | llvm-svn: 241375
* Use a continue to reduce indentation.Rafael Espindola2015-07-031-51/+52
| | | | llvm-svn: 241374
* Context is allocated just a few lines above. Don't check if it is null.Rafael Espindola2015-07-031-32/+26
| | | | llvm-svn: 241373
* Fix build with -DLLVM_USE_INTEL_JITEVENTS=ON -DLLVM_USE_OPROFILE=ON.Rafael Espindola2015-07-033-9/+14
| | | | | | Is anyone using those? llvm-svn: 241372
* [ELF/AArch64] Set correct loader name in linking contextAdhemerval Zanella2015-07-031-3/+3
| | | | | | | | This patch reimplements ELFLinkingContext::getDefaultInterpreter for aarch64 with correct loader name. It is required to exclude the loader from DT_NEEDED in shared library creation. llvm-svn: 241371
* [ELF/AArch64] Set correct loader name in linking contextAdhemerval Zanella2015-07-031-0/+5
| | | | | | | | This patch reimplements ELFLinkingContext::getDefaultInterpreter for aarch64 with correct loader name. It is required to exclude the loader from DT_NEEDED in shared library creation. llvm-svn: 241370
* Remove always-true comparison, NFC.Filipe Cabecinhas2015-07-032-25/+19
| | | | | | | | | | | | | | | | | | | | | | | Summary: Looking at r241279, I noticed that UpgradedIntrinsics only gets written to in the following code: if (UpgradeIntrinsicFunction(&F, NewFn)) UpgradedIntrinsics[&F] = NewFn; Looking through UpgradeIntrinsicFunction, we always return false OR NewFn will be set to a different function from our source. This patch pulls the F != NewFn into UpgradeIntrinsicFunction as an assert, and removes the check from callers of UpgradeIntrinsicFunction. Reviewers: rafael, chandlerc Subscribers: llvm-commits-list Differential Revision: http://reviews.llvm.org/D10915 llvm-svn: 241369
* [X86] Added 32-bit builds to fp<->int tests.Simon Pilgrim2015-07-032-3/+13
| | | | | | Ensure that i686 x87/SSE/SSE2 targets all build. llvm-svn: 241368
* Delete dead code. NFC.Benjamin Kramer2015-07-031-5/+0
| | | | llvm-svn: 241367
* Return ErrorOr from getSymbolAddress.Rafael Espindola2015-07-0318-61/+80
| | | | | | | It can fail trying to get the section on ELF and COFF. This makes sure the error is handled. llvm-svn: 241366
* Replace a few more MachO only uses of getSymbolAddress.Rafael Espindola2015-07-033-12/+8
| | | | llvm-svn: 241365
* Use getValue instead of getAddress in a few MachO only cases.Rafael Espindola2015-07-032-28/+11
| | | | | | | In MachO the value of the symbol is always the address, so we can use the simpler function. llvm-svn: 241364
* clang-format: Add MacroBlock{Begin,End} optionsBirunthan Mohanathas2015-07-036-10/+91
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | The MacroBlockBegin and MacroBlockEnd options make matching macro identifiers behave like '{' and '}', respectively, in terms of indentation. Mozilla code, for example, uses several macros that begin and end a scope. Previously, Clang-Format removed the indentation resulting in: MACRO_BEGIN(...) MACRO_ENTRY(...) MACRO_ENTRY(...) MACRO_END Now, using the options MacroBlockBegin: "^[A-Z_]+_BEGIN$" MacroBlockEnd: "^[A-Z_]+_END$" will yield the expected result: MACRO_BEGIN(...) MACRO_ENTRY(...) MACRO_ENTRY(...) MACRO_END Differential Revision: http://reviews.llvm.org/D10840 llvm-svn: 241363
* Revert "Refactored ARMTargetInfo in order to use the API of ↵Renato Golin2015-07-031-78/+118
| | | | | | | | llvm/lib/Support/TargetParser.cpp This reverts commit r241343, as it was, again, breaking all ARM buildbots. llvm-svn: 241362
* Remove DOS line endings from LLDBStandalone.cmakeEd Maste2015-07-031-87/+87
| | | | llvm-svn: 241361
* [lldb-mi] Use size_t where appropriate.Bruce Mitchener2015-07-0314-178/+178
| | | | | | | | | | | | | | | Summary: Many places should have been using size_t rather than MIuint or MIint. This is particularly true for code that uses std::string::find(), std::string::rfind(), std::string::size(), and related methods. Reviewers: abidh, ki.stfu, domipheus Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D10931 llvm-svn: 241360
* [lldb-mi] Remove unnecessary const_cast.Bruce Mitchener2015-07-031-1/+1
| | | | | | | | | | | | Summary: Remove unnecessary const_cast. Reviewers: abidh, ki.stfu Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D10928 llvm-svn: 241359
* [lldb-mi] GetVarFormatForChar needn't pass a char by const ref.Bruce Mitchener2015-07-032-5/+5
| | | | | | | | | | | | Summary: GetVarFormatForChar needn't pass a char by const ref. Reviewers: ki.stfu, abidh Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D10927 llvm-svn: 241358
* [lldb-mi] Remove unnecessary members from MICmdArgContext.Bruce Mitchener2015-07-032-12/+6
| | | | | | | | | | | | | | | | Summary: Remove unnecessary members from MICmdArgContext. We don't need constants for these value stored in every instance of the class. Reviewers: ki.stfu, abidh Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D10926 llvm-svn: 241357
OpenPOWER on IntegriCloud