- Sep 09, 2016
-
-
James Molloy authored
The CMPZ #0 disappears during peepholing, leaving just a tADDi3, tADDi8 or t2ADDri. This avoids having to materialize the expensive negative constant in Thumb-1, and allows a shrinking from a 32-bit CMN to a 16-bit ADDS in Thumb-2. llvm-svn: 281040
-
Tobias Grosser authored
This fixes the following compile time errors: error: unknown type name 'nullptr_t'; did you mean 'std::nullptr_t' llvm-svn: 281039
-
George Rimar authored
Previously we incorrectly handled cases when symbol name in extern c++ tag was enclosed in quotes. Next case was treated as wildcard: GLIBCXX_3.4 { extern "C++" { "aaa*" } But it should have not. Quotes around aaa here means that we should have do exact name matching. That is PR30268 which has name with pointer is interpreted as wildcard by lld: extern "C++" { "operator delete[](void*)"; Patch fixes the issue. Differential revision: https://reviews.llvm.org/D24229 llvm-svn: 281038 -
Tim Northover authored
These instructions were only necessary when type information was stored in the MachineInstr (because only generic MachineInstrs possessed a type). Now that it's in MachineRegisterInfo, COPY and PHI work fine. llvm-svn: 281037
-
Tim Northover authored
llvm-svn: 281036
-
Tim Northover authored
We want each register to have a canonical type, which means the best place to store this is in MachineRegisterInfo rather than on every MachineInstr that happens to use or define that register. Most changes following from this are pretty simple (you need an MRI anyway if you're going to be doing any transformations, so just check the type there). But legalization doesn't really want to check redundant operands (when, for example, a G_ADD only ever has one type) so I've made use of MCInstrDesc's operand type field to encode these constraints and limit legalization's work. As an added bonus, more validation is possible, both in MachineVerifier and MachineIRBuilder (coming soon). llvm-svn: 281035
-
Tobias Grosser authored
llvm-svn: 281034
-
Simon Dardis authored
This reverts commit r281022. Mips buildbot broke, due to unhandled register class FCC. llvm-svn: 281033
-
Nitesh Jain authored
Subscribers: jaydeep, bhushan, slthakur, sdardis, lldb-commits llvm-svn: 281032
-
Nitesh Jain authored
Reviewers: clayborg, labath Subscribers: jaydeep, bhushan, slthakur, lldb-commits Differential Revision: https://reviews.llvm.org/D24122 llvm-svn: 281031
-
Dimitar Vlahovski authored
Summary: LLVM guys did some clean-up of the Attribute getters/setters and because of that the build was failing. Reviewers: ldrumm Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D24382 llvm-svn: 281030
-
Pavel Labath authored
add clang-format guards so it does not reformat it again. llvm-svn: 281029
-
Sam Kolton authored
Summary: Also removed duplicate code from AMDGPUTargetAsmStreamer. This change only change how amd_kernel_code_t is parsed and printed. No variable names are changed. Reviewers: vpykhtin, tstellarAMD Subscribers: arsenm, wdng, nhaehnle Differential Revision: https://reviews.llvm.org/D24296 llvm-svn: 281028
-
James Molloy authored
This avoids us doing a completely unneeded "cmp r0, #0" after a flag-setting instruction if we only care about the Z or C flags. Add LSL/LSR to the whitelist while we're here and add testing. This code could really do with a spring clean. llvm-svn: 281027
-
Nitesh Jain authored
Subscribers: jaydeep, bhushan, slthakur, lldb-commits llvm-svn: 281026
-
Pavel Labath authored
The behaviour of FileSpec differed between host OS versions. Hardcode the path syntax to posix, as we don't care about that in this test. llvm-svn: 281025
-
Eugene Leviant authored
Differential revision: https://reviews.llvm.org/D24340 llvm-svn: 281024
-
Sam Kolton authored
Summary: Split assembler match table in 4 tables with assembler variants: Default - all instructions except VOP3, SDWA and DPP - VOP3 - SDWA - DPP First match Default table then VOP3, SDWA and DPP. Reviewers: tstellarAMD, artem.tamazov, vpykhtin Subscribers: arsenm, wdng, nhaehnle, AMDGPU Differential Revision: https://reviews.llvm.org/D24252 llvm-svn: 281023
-
Simon Dardis authored
As part of this effort, remove MipsFCmp nodes and use tablegen patterns rather than custom lowering through C++. Unexpectedly, this improves codesize for microMIPS as previous floating point setcc expansions would materialize 0 and 1 into GPRs before using the relevant mov[tf].[sd] instruction. Now $zero is used directly. Reviewers: dsanders, vkalintiris, zoran.jovanovic Differential Review: https://reviews.llvm.org/D23118 llvm-svn: 281022
-
Chris Dewhurst authored
llvm-svn: 281021
-
Gor Nishanov authored
Summary: If one of the uses of the value is a single edge PHINode, handle it. Original: %val = something <suspend> %p = PHINode [%val] After Spill + Part13: %val = something %slot = gep val.spill.slot store %val, %slot <suspend> %p = load %slot Plus tiny fixes/changes: * use correct index for coro.free in CoroCleanup * fixup id parameter in coro.free to allow authoring coroutine in plain C with __builtins Reviewers: majnemer Subscribers: mehdi_amini, llvm-commits Differential Revision: https://reviews.llvm.org/D24242 llvm-svn: 281020 -
Amaury Sechet authored
Summary: While woring on mapping attributes in the C API, it clearly appeared that the recent changes in the API on the C++ side left Function and Call/Invoke with an attribute API that grew in an ad hoc manner. This makes it difficult to work with it, because one doesn't know which overloads exists and which do not. Make sure that getter/setter function exists for both enum and string version. Remove inconsistent getter/setter, unless they have many callsites. This should make it easier to work with attributes in the future. This doesn't change how attribute works. Reviewers: bkramer, whitequark, mehdi_amini, void Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D21514 llvm-svn: 281019
-
Amaury Sechet authored
Summary: As per title. Reviewers: ahatanak, bkramer, whitequark, mehdi_amini, void Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D21515 llvm-svn: 281018
-
George Burgess IV authored
Avoided wrapping NullabilityDocs at 80cols, since that would've made this diff much bigger, and never-ending lines seems to be the style for many of the null-related docs. llvm-svn: 281017
-
Kostya Serebryany authored
llvm-svn: 281016
-
Kostya Serebryany authored
[sanitizer] fix a potential buffer overflow due to __sanitizer_symbolize_pc (need to put a zero after strncmp). LOL llvm-svn: 281015
-
Kostya Serebryany authored
llvm-svn: 281014
-
Craig Topper authored
llvm-svn: 281013
-
Craig Topper authored
[AVX-512] Add more integer vector comparison tests with loads. Some of these show opportunities where we can commute to fold loads. Commutes will be added in a followup commit. llvm-svn: 281012
-
Vedant Kumar authored
llvm-cov writes out an index file in '-output-dir' mode, albeit not a very informative one. Try to fix that by using the CoverageReport API to include some basic summary information in the index file. llvm-svn: 281011
-
Vedant Kumar authored
llvm-svn: 281010
-
Vedant Kumar authored
It would be nice to prepare file reports (using the CoverageReport API) without actually rendering them to the console. I plan on using this to flesh out the 'index' files in the coverage views. llvm-svn: 281009
-
Vedant Kumar authored
This test should have broken after r280896. Fix up the test case speculatively, since I don't have a way to test it. I wonder why I didn't get any angry bot emails about this. Maybe none of the win32 bots test llvm-cov? That could explain it, since the test says it 'REQUIRES: system-windows', which is restricted to win32 hosts. Also: why is 'system-windows' not defined for non-win32 Windows bots? llvm-svn: 281008
-
Kostya Serebryany authored
llvm-svn: 281007
-
David Majnemer authored
The x64 ABI has two major function types: - frame functions - leaf functions A frame function is one which requires a stack frame. A leaf function is one which does not. A frame function may or may not have a frame pointer. A leaf function does not require a stack frame and may never modify SP except via a return (RET, tail call via JMP). A frame function which has a frame pointer is permitted to use the LEA instruction in the epilogue, a frame function without which doesn't establish a frame pointer must use ADD to adjust the stack pointer epilogue. Fun fact: Leaf functions don't require a function table entry (associated PDATA/XDATA). llvm-svn: 281006
-
Michael Kuperstein authored
This adds more tests for shuffles where the output width does not match the input width and/or the output is generated from more than two inputs. llvm-svn: 281005
-
Rui Ueyama authored
Usually, options that are longer than one character can be preceded either by "-" or "--", but options starting with "o" are exceptions because they conflict with "-o" option. They have to be preceded by "--". llvm-svn: 281004
-
Hans Wennborg authored
The REX prefix should be used on indirect jmps, but not direct ones. For direct jumps, the unwinder looks at the offset to determine if it's inside the current function. Differential Revision: https://reviews.llvm.org/D24359 llvm-svn: 281003
-
Mike Aizatsky authored
Summary: Not sure why is it missing. Differential Revision: https://reviews.llvm.org/D24364 llvm-svn: 281002
-
Rui Ueyama authored
We still have to skip a token inside SEARCH_DIR() when -nostdlib is specified. Previuosly, we didn't skip it, so it caused a parse error. llvm-svn: 281001
-