- Mar 02, 2016
-
-
Michael Zuckerman authored
Differential Revision: http://reviews.llvm.org/D17705 llvm-svn: 262480
-
Simon Pilgrim authored
We have a number of useful lowering strategies for VBROADCAST instructions (both from memory and register element 0) which the 128-bit form of the MOVDDUP instruction can make use of. This patch tweaks lowerVectorShuffleAsBroadcast to enable it to broadcast 2f64 args using MOVDDUP as well. It does require a slight tweak to the lowerVectorShuffleAsBroadcast mechanism as the existing MOVDDUP lowering uses isShuffleEquivalent which can match binary shuffles that can lower to (unary) broadcasts. Differential Revision: http://reviews.llvm.org/D17680 llvm-svn: 262478
-
Nikolay Haustov authored
Build failure with clang. llvm-svn: 262477
-
Nikolay Haustov authored
Build failure with clang. llvm-svn: 262475
-
Nikolay Haustov authored
complementary patch to table-driven amd_kernel_code_t field parser/printer utility. lit tests passed. Patch by: Valery Pykhtin Differential Revision: http://reviews.llvm.org/D17151 llvm-svn: 262474
-
Nikolay Haustov authored
This is going to be used in .hsatext disassembler and can be used in current assembler parser (lit tests passed on parsing). Code using this helpers isn't included in this patch. Benefits: unified approach fast field name lookup on parsing Later I would like to enhance some of the field naming/syntax using this code. Patch by: Valery Pykhtin Differential Revision: http://reviews.llvm.org/D17150 llvm-svn: 262473
-
Dmitry Vyukov authored
- unused sigaction/setitimer result (used in assert) - unchecked fscanf return value - signed/unsigned comparison llvm-svn: 262472
-
Craig Topper authored
[X86] Remove unnecessary call to isReg from emitter's DestMem handling for VEX prefix. The operand is always a register. NFC llvm-svn: 262468
-
Craig Topper authored
[X86] Make X86MCCodeEmitter::DetermineREXPrefix locate operands more like how VEX prefix handling does. llvm-svn: 262467
-
David Majnemer authored
We modeled the RDFLAGS{32,64} operations as "using" {E,R}FLAGS. While technically correct, this is not be desirable for folks who want to examine aspects of the FLAGS register which are not related to computation like whether or not CPUID is a valid instruction. Differential Revision: http://reviews.llvm.org/D17782 llvm-svn: 262465
-
Craig Topper authored
llvm-svn: 262464
-
Craig Topper authored
[X86] Be more structured about how we capture the register number when it is encoded in bits 7:4 of the immediate. For some instructions the register is not the last operand and the immediate handling had to detect this and hardcode the index to find it. It also required CurOp to be pointing at the last operand handled in the Form switch whereas for any instruction it would be pointing at the next operand. Now we just capture the value in the Form switch when we know exactly where it is and the CurOp pointer can behave normally. llvm-svn: 262462
-
Sanjoy Das authored
llvm-svn: 262459
-
Craig Topper authored
[X86] Use MCPhysReg and uint16_t for static arrays of registers and opcodes respectively should reduce size tiny bit. NFC llvm-svn: 262458
-
Matt Arsenault authored
Fix checking the same instruction twice instead of the second branch that uses vccz. I don't think this matters currently because s_branch_vccnz is always used currently. llvm-svn: 262457
-
Matt Arsenault authored
llvm-svn: 262456
-
Matt Arsenault authored
llvm-svn: 262455
-
Sanjoy Das authored
llvm-svn: 262454
-
Sanjoy Das authored
llvm-svn: 262453
-
George Burgess IV authored
llvm-svn: 262452
-
Sanjoy Das authored
For some reason MSVC seems to think I'm calling getConstant() from a static context. Try to avoid this issue by explicitly specifying 'this->' (though I'm not confident that this will actually work). llvm-svn: 262451
-
Sanjoy Das authored
llvm-svn: 262449
-
Sanjoy Das authored
llvm-svn: 262448
-
Matt Arsenault authored
llvm-svn: 262446
-
Sanjay Patel authored
that is broken by this change llvm-svn: 262440
-
Sanjoy Das authored
Have ScalarEvolution::getRange re-consider cases like "{C?A:B,+,C?P:Q}" by factoring out "C" and computing RangeOf{A,+,P} union RangeOf({B,+,Q}) instead. The latter can be easier to compute precisely in cases like "{C?0:N,+,C?1:-1}" N is the backedge taken count of the loop; since in such cases the latter form simplifies to [0,N+1) union [0,N+1). llvm-svn: 262438
-
Sanjoy Das authored
Pure code-motion change. Will be used later in making getRange more clever. llvm-svn: 262437
-
Sanjay Patel authored
As noted in the code comment, I don't think we can do the same transform that we do for *scalar* integers comparisons to *vector* integers comparisons because it might pessimize the general case. Exhibit A for an incomplete integer comparison ISA remains x86 SSE/AVX: it only has EQ and GT for integer vectors. But we should now recognize all the variants of this construct and produce the optimal code for the cases shown in: https://llvm.org/bugs/show_bug.cgi?id=26701 llvm-svn: 262424
-
- Mar 01, 2016
-
-
Dehao Chen authored
Summary: SampleProfile pass needs to be performed after InstructionCombiningPass, which helps eliminate un-inlinable function calls. Reviewers: davidxl, dnovillo Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D17742 llvm-svn: 262419
-
Kostya Serebryany authored
llvm-svn: 262417
-
Kostya Serebryany authored
[libFuzzer] add generic signal handlers so that libFuzzer can report at least something if ASan is not handlig the signals for us. Remove abort_on_timeout flag. llvm-svn: 262415
-
Colin LeMahieu authored
llvm-svn: 262411
-
Matthias Braun authored
The fixes in r262393 completed them as well. llvm-svn: 262408
-
Colin LeMahieu authored
[Hexagon] Modifying r262258 to only be in effect in the hand assembler path, not the integrated assembler. llvm-svn: 262400
-
Matt Arsenault authored
On AMDGPU where operations i64 operations are often bitcasted to v2i32 and back, this pattern shows up regularly where it breaks some expected combines on i64, such as load width reducing. This fixes some test failures in a future commit when i64 loads are changed to promote. llvm-svn: 262397
-
Rafael Espindola authored
Should fix the DBUILD_SHARED_LIBS bots. llvm-svn: 262396
-
Jacques Pienaar authored
Add ELF enum value and relocations for Lanai backed. General Lanai backend discussion on llvm-dev thread "[RFC] Lanai backend" (http://lists.llvm.org/pipermail/llvm-dev/2016-February/095118.html). Differential Revision: http://reviews.llvm.org/D17008 llvm-svn: 262394
-
Matthias Braun authored
This adds some missing generic schedule info definitions, enables completeness checking for cyclone and fixes a typo uncovered by that. Differential Revision: http://reviews.llvm.org/D17748 llvm-svn: 262393
-
Kit Barton authored
This change implements the following vector operations: - Vector Compare Not Equal - vcmpneb(.) vcmpneh(.) vcmpnew(.) - vcmpnezb(.) vcmpnezh(.) vcmpnezw(.) - Vector Extract Unsigned - vextractub vextractuh vextractuw vextractd - vextublx vextubrx vextuhlx vextuhrx vextuwlx vextuwrx - Vector Insert - vinsertb vinserth vinsertw vinsertd 26 instructions. Phabricator: http://reviews.llvm.org/D15916 llvm-svn: 262392
-
Sanjay Patel authored
This isn't quite NFC because some of the SDLocs may change which could cause scheduling differences. But no regression tests are affected and there is no functional change intended. llvm-svn: 262391
-