summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [llvm-readobj] Dump hash as part of -version-info.Davide Italiano2016-05-022-0/+4
| | | | llvm-svn: 268210
* [CodeGen] Add OPC_MoveChild0-OPC_MoveChild7 opcodes to isel matching tables ↵Craig Topper2016-05-023-3/+24
| | | | | | to optimize table size. Shaves about 12K off the X86 matcher table. llvm-svn: 268209
* Add support for synthetic child providers to optionally return a customized ↵Enrico Granata2016-05-026-0/+94
| | | | | | typename for display llvm-svn: 268208
* [GlobalDCE] Modernize. Use FileCheck instead of grep.Davide Italiano2016-05-016-7/+15
| | | | llvm-svn: 268207
* [InstCombine][SSE] Added support to VPERMD/VPERMPS to shuffle combine to ↵Simon Pilgrim2016-05-012-13/+18
| | | | | | accept UNDEF elements. llvm-svn: 268206
* Dropped FIXME commentSimon Pilgrim2016-05-011-1/+1
| | | | llvm-svn: 268205
* [InstCombine][SSE] Added support to VPERMILVAR to shuffle combine to accept ↵Simon Pilgrim2016-05-012-28/+35
| | | | | | UNDEF elements. llvm-svn: 268204
* [InstCombine][AVX] Fixed PERMILVAR identity tests and added additional ↵Simon Pilgrim2016-05-011-13/+47
| | | | | | decode tests llvm-svn: 268203
* [InstCombine][SSE] Added support to PSHUFB to shuffle combine to accept ↵Simon Pilgrim2016-05-012-22/+21
| | | | | | UNDEF elements. llvm-svn: 268202
* [InstCombine][SSE] Regenerate MOVSX/MOVZX testsSimon Pilgrim2016-05-012-114/+116
| | | | llvm-svn: 268201
* [AVX512] VPACKUSWB/VPACKSSWB should not be encoded with EVEX.W=1. While ↵Craig Topper2016-05-014-214/+214
| | | | | | there fix the execution domain for VPACKSSDW/VPACKUSDW. llvm-svn: 268200
* [InstCombine][AVX2] Combine VPERMD/VPERMPS intrinsics with constant masks to ↵Simon Pilgrim2016-05-012-15/+50
| | | | | | shufflevector. llvm-svn: 268199
* Fixed MSVC 'not all control paths return a value' warningSimon Pilgrim2016-05-011-0/+1
| | | | llvm-svn: 268198
* Document the LLVM_ENABLE_EXPENSIVE_CHECKS cmake option introduced in r268050Simon Pilgrim2016-05-011-0/+3
| | | | llvm-svn: 268197
* [clang][Builtin][AVX512] Adding intrinsics for vmovshdup and vmovsldup ↵Michael Zuckerman2016-05-015-0/+210
| | | | | | | | instruction set Differential Revision: http://reviews.llvm.org/D19595 llvm-svn: 268196
* getelementptr instruction, support index vector of EVT.Igor Breger2016-05-012-1/+11
| | | | | | Differential Revision: http://reviews.llvm.org/D19775 llvm-svn: 268195
* Update test for r268192.Kuba Brecka2016-05-011-3/+3
| | | | llvm-svn: 268194
* Improve wording and capitalization of TSan thread names.Kuba Brecka2016-05-011-7/+7
| | | | llvm-svn: 268193
* Add thread numbers into ASan thread names.Kuba Brecka2016-05-011-5/+8
| | | | llvm-svn: 268192
* Fix NetBSD build with CMake 3.5.2Kamil Rytarowski2016-05-012-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Building HEAD of LLDB fails in linking against DebugInfoPDB. It also prints the following warning: ``` CMake Warning (dev) in source/Plugins/SymbolFile/PDB/CMakeLists.txt: Policy CMP0022 is not set: INTERFACE_LINK_LIBRARIES defines the link interface. Run "cmake --help-policy CMP0022" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Target "lldbPluginSymbolFilePDB" has an INTERFACE_LINK_LIBRARIES property. This should be preferred as the source of the link interface for this library but because CMP0022 is not set CMake is ignoring the property and using the link implementation as the link interface instead. INTERFACE_LINK_LIBRARIES: LLVMDebugInfoPDB Link implementation: (empty) ``` CMP0022 was introduced in CMake-2.8.11, bump minimal required version from 2.8 to 3.0 to gain more useful features like libexecinfo(3) detection on NetBSD. Reviewers: emaste, zturner, labath Subscribers: zturner, lldb-commits, joerg Differential Revision: http://reviews.llvm.org/D19685 llvm-svn: 268191
* Change AVX512 braodcastsd/ss patterns interaction with spilling . New ↵Igor Breger2016-05-016-110/+329
| | | | | | | | implementation take a scalar register and generate a vector without COPY_TO_REGCLASS (turn it into a VR128 register ) .The issue is that during register allocation we may spill a scalar value using 128-bit loads and stores, wasting cache bandwidth. Differential Revision: http://reviews.llvm.org/D19579 llvm-svn: 268190
* [AVX512] Prefer AVX512 VPACK instructions over AVX/AVX2 instructions when ↵Craig Topper2016-05-012-11/+11
| | | | | | VLX and BWI are supported. llvm-svn: 268189
* [AVX512] Add HasVLX to the 128/256-bit versions of VPACKSSDW/USDW/SSWB/USWB ↵Craig Topper2016-05-011-13/+14
| | | | | | and VPMADDUBSW/VPMADDWD. llvm-svn: 268188
* Should fix all remaining MSVC problems.Peter Collingbourne2016-05-011-5/+5
| | | | llvm-svn: 268187
* [AVX512] Make sure 128/256-bit DQI versions of VAND/VANDN/VOR/VXOR are also ↵Craig Topper2016-05-011-16/+16
| | | | | | marked as requiring VLX. llvm-svn: 268186
* Further MSVC appeasement.Peter Collingbourne2016-05-012-6/+6
| | | | llvm-svn: 268185
* [X86] Add an AddedComplexity to another pattern to put it near similar in ↵Craig Topper2016-05-011-2/+1
| | | | | | the output file. llvm-svn: 268184
* [X86] Remove a seemlingly unused pattern. The same pattern appears elsewhere ↵Craig Topper2016-05-011-2/+0
| | | | | | with an AddedComplexity that made this unreachable. llvm-svn: 268183
* Try to fix MSVC build.Peter Collingbourne2016-05-011-1/+2
| | | | llvm-svn: 268182
* [X86] Add AddedComplexity to keep some similar patterns near each other in ↵Craig Topper2016-05-011-0/+1
| | | | | | the output file. llvm-svn: 268181
* [X86] Remove some redundant selection patterns.Craig Topper2016-05-012-11/+0
| | | | llvm-svn: 268180
* [AVX512] Replace vector_extract with extractelt in some patterns. They mean ↵Craig Topper2016-05-011-5/+5
| | | | | | the same thing but vector_extract is deprecated. NFC llvm-svn: 268179
* ELF: New symbol table design.Peter Collingbourne2016-05-0114-504/+632
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch implements a new design for the symbol table that stores SymbolBodies within a memory region of the Symbol object. Symbols are mutated by constructing SymbolBodies in place over existing SymbolBodies, rather than by mutating pointers. As mentioned in the initial proposal [1], this memory layout helps reduce the cache miss rate by improving memory locality. Performance numbers: old(s) new(s) Without debug info: chrome 7.178 6.432 (-11.5%) LLVMgold.so 0.505 0.502 (-0.5%) clang 0.954 0.827 (-15.4%) llvm-as 0.052 0.045 (-15.5%) With debug info: scylla 5.695 5.613 (-1.5%) clang 14.396 14.143 (-1.8%) Performance counter results show that the fewer required indirections is indeed the cause of the improved performance. For example, when linking chrome, stalled cycles decreases from 14,556,444,002 to 12,959,238,310, and instructions per cycle increases from 0.78 to 0.83. We are also executing many fewer instructions (15,516,401,933 down to 15,002,434,310), probably because we spend less time allocating SymbolBodies. The new mechanism by which symbols are added to the symbol table is by calling add* functions on the SymbolTable. In this patch, I handle local symbols by storing them inside "unparented" SymbolBodies. This is suboptimal, but if we do want to try to avoid allocating these SymbolBodies, we can probably do that separately. I also removed a few members from the SymbolBody class that were only being used to pass information from the input file to the symbol table. This patch implements the new design for the ELF linker only. I intend to prepare a similar patch for the COFF linker. [1] http://lists.llvm.org/pipermail/llvm-dev/2016-April/098832.html Differential Revision: http://reviews.llvm.org/D19752 llvm-svn: 268178
* [SCEV] When printing via -analysis, dump loop dispositionSanjoy Das2016-05-012-0/+98
| | | | | | | | | | | There are currently some bugs in tree around SCEV caching an incorrect loop disposition. Printing out loop dispositions will let us write whitebox tests as those are fixed. The dispositions are printed as a list in "inside out" order, i.e. innermost loop first. llvm-svn: 268177
* Properly name LLVMSetIsInBounds's argument. NFCAmaury Sechet2016-05-012-3/+3
| | | | llvm-svn: 268176
* Capitalize align argument in the C API as per convention. NFCAmaury Sechet2016-05-011-2/+2
| | | | llvm-svn: 268175
* [AVX512] Add hasSideEffects/mayLoad/mayStore flags to some instructions.Craig Topper2016-05-011-4/+7
| | | | llvm-svn: 268174
* [ORC] Save AArch64 NEON state in the JIT reentry block.Lang Hames2016-05-012-43/+75
| | | | | | | The earlier version of the resolver code did not save NEON state, so it would have broken any callees that used floating point. llvm-svn: 268173
* ELF: --reproduce: quote pathnames for -L and other options.Rui Ueyama2016-04-302-14/+23
| | | | | | Previously, arguments for options that take pathnames were not rewritten. llvm-svn: 268172
* ELF: --reproduce: Copy files referenced by linker scripts.Rui Ueyama2016-04-304-11/+35
| | | | | | Previuosly, only files appeared on the command line were copied. llvm-svn: 268171
* Attempt to fix Windows buildbots.Rui Ueyama2016-04-301-2/+2
| | | | llvm-svn: 268170
* ELF: Make --reproduce to produce a response file.Rui Ueyama2016-04-304-45/+92
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The aim of this patch is to make it easy to re-run the command without updating paths in the command line. Here is a use case. Assume that Alice is having an issue with lld and is reporting the issue to developer Bob. Alice's current directly is /home/alice/work and her command line is "ld.lld -o foo foo.o ../bar.o". She adds "--reproduce repro" to the command line and re-run. Then the following text will be produced as response.txt (notice that the paths are rewritten so that they are relative to /home/alice/work/repro.) -o home/alice/work/foo home/alice/work/foo.o home/alice/bar.o The command also produces the following files by copying inputs. /home/alice/repro/home/alice/work/foo.o /home/alice/repro/home/alice/bar.o Alice zips the directory and send it to Bob. Bob get an archive from Alice and extract it to his home directory as /home/bob/repro. Now his directory have the following files. /home/bob/repro/response.txt /home/bob/repro/home/alice/work/foo.o /home/bob/repro/home/alice/bar.o Bob then re-run the command with these files by the following commands. cd /home/bob/repro ld.lld @response.txt This command will run the linker with the same command line options and the same input files as Alice's, so it is very likely that Bob will see the same issue as Alice saw. Differential Revision: http://reviews.llvm.org/D19737 llvm-svn: 268169
* [lit] Add %:[STpst] to represent paths without colons on Windows.Rui Ueyama2016-04-301-0/+18
| | | | | | | | | | | | Summary: We need these variables to concatenate two absolute paths to construct a valid path. Currently, %t\%t is, for example, expanded to C:\foo\C:\foo, which is not a valid path because ":" is not a valid path character on Windows. With this patch, %t will be expanded to C\foo. Differential Revision: http://reviews.llvm.org/D19757 llvm-svn: 268168
* python: add bindings for children of diagnosticsSaleem Abdulrasool2016-04-302-0/+44
| | | | | | | | | | | | | This exposes the Clang API bindings clang_getChildDiagnostics (which returns a CXDiagnosticSet) and clang_getNumDiagnosticsInSet / clang_getDiagnosticInSet (to traverse the CXDiagnosticSet), and adds a helper children property in the Python Diagnostic wrapper. Also, this adds the missing OVERLOAD_CANDIDATE (700) cursor type. Patch by Hanson Wang! llvm-svn: 268167
* [InstCombine][AVX2] Added VPERMD/VPERMPS shuffle combining placeholder tests.Simon Pilgrim2016-04-301-0/+87
| | | | | | For future support for VPERMD/VPERMPS to generic shuffles combines llvm-svn: 268166
* CodeGen: convert to range based loopsSaleem Abdulrasool2016-04-301-36/+20
| | | | | | | Convert to using some range based loops, avoid unnecessary variables for unchecked casts. NFC. llvm-svn: 268165
* [X86] Reduce memory usage of MemOp2RegOp and RegOp2MemOp folding maps.Craig Topper2016-04-302-13/+9
| | | | llvm-svn: 268164
* Add missing override.Rafael Espindola2016-04-301-1/+2
| | | | llvm-svn: 268163
* [ASan] Add shadow offset for SystemZ.Marcin Koscielnicki2016-04-303-1/+20
| | | | | | | | This is the compiler-rt counterpart to D19650. Differential Revision: http://reviews.llvm.org/D19652 llvm-svn: 268162
* [ASan] Add shadow offset for SystemZ.Marcin Koscielnicki2016-04-301-2/+8
| | | | | | | | | | | | | | | | | | | | | | SystemZ on Linux currently has 53-bit address space. In theory, the hardware could support a full 64-bit address space, but that's not supported due to kernel limitations (it'd require 5-level page tables), and there are no plans for that. The default process layout stays within first 4TB of address space (to avoid creating 4-level page tables), so any offset >= (1 << 42) is fine. Let's use 1 << 52 here, ie. exactly half the address space. I've originally used 7 << 50 (uses top 1/8th of the address space), but ASan runtime assumes there's some space after the shadow area. While this is fixable, it's simpler to avoid the issue entirely. Also, I've originally wanted to have the shadow aligned to 1/8th the address space, so that we can use OR like X86 to assemble the offset. I no longer think it's a good idea, since using ADD enables us to load the constant just once and use it with register + register indexed addressing. Differential Revision: http://reviews.llvm.org/D19650 llvm-svn: 268161
OpenPOWER on IntegriCloud