- May 19, 2016
-
-
Artem Tamazov authored
Fixes for MUBUF_Atomic instructions to make operand list valid: - For RTN insns, make a copy of $vdata_in operand as $vdata. - Do not add operand for GLC, it is hardcoded and comes as a token. Workaround to avoid adding multiple default optional operands. Tests added. Differential Revision: http://reviews.llvm.org/D20257 llvm-svn: 270049
-
Zoran Jovanovic authored
Differential Revision: http://reviews.llvm.org/D15526 llvm-svn: 270048
-
Daniel Sanders authored
Summary: Partially fixes PR27458 Reviewers: sdardis Subscribers: dsanders, llvm-commits, sdardis Differential Revision: http://reviews.llvm.org/D20330 llvm-svn: 270037
-
Andrey Turetskiy authored
Enable "Remove Redundant LEAs" part of the LEA optimization pass for -O2. This gives 6.4% performance improve on Broadwell on nnet benchmark from Coremark-pro. There is no significant effect on other benchmarks (Geekbench, Spec2000, Spec2006). Differential Revision: http://reviews.llvm.org/D19659 llvm-svn: 270036
-
Zlatko Buljan authored
Differential Revision: http://reviews.llvm.org/D18352 llvm-svn: 270030
-
Craig Topper authored
[X86] Generalize and combine some similar type constraints and node types. No changes to the isel table size so the separation wasn't buying us anything. llvm-svn: 270026
-
Craig Topper authored
llvm-svn: 270025
-
Dan Gohman authored
llvm-svn: 270017
-
Craig Topper authored
llvm-svn: 270013
-
Craig Topper authored
[AVX512] Strengthen type constraints for VFIXUPIMM patterns and combine the type constraints for vector and scalar. llvm-svn: 270012
-
Chad Rosier authored
llvm-svn: 270003
-
Matt Arsenault authored
llvm-svn: 270002
-
Matt Arsenault authored
If the load has a pointer type, we don't want to change its type. llvm-svn: 270000
-
Rafael Espindola authored
Having an enum member named Default is quite confusing: Is it distinct from the others? This patch removes that member and instead uses Optional<Reloc> in places where we have a user input that still hasn't been maped to the default value, which is now clear has no be one of the remaining 3 options. llvm-svn: 269988
-
- May 18, 2016
-
-
Jacques Pienaar authored
isReturn() was returning different values with and without -g which led to different code being generated. Change isFlagSettingInstruction to query an instruction's effect on SR instead. llvm-svn: 269986
-
Dan Gohman authored
llvm-svn: 269976
-
Jan Vesely authored
Use signed division otherwise all back jumps fail the check Fixes regression introduced in r269951 Differential Revision: http://reviews.llvm.org/D20380 llvm-svn: 269972
-
Chad Rosier authored
llvm-svn: 269963
-
Sanjay Patel authored
llvm-svn: 269962
-
Matt Arsenault authored
llvm-svn: 269951
-
Matt Arsenault authored
We can chain bcnt instructions together, so any width popcnt is pretty fast. llvm-svn: 269950
-
Hans Wennborg authored
with an additional fix to make RegAllocFast ignore undef physreg uses. It would previously get confused about the "push %eax" instruction's use of eax. That method for adjusting the stack pointer is used in X86FrameLowering::emitSPUpdate as well, but since that runs after register-allocation, we didn't run into the RegAllocFast issue before. llvm-svn: 269949
-
Matt Arsenault authored
For some reason an assert is now hit when a valid chain is not returned, so return the entry chain. llvm-svn: 269948
-
Rafael Espindola authored
This just clang formats and cleans comments in an area I am about to post a patch for review. llvm-svn: 269946
-
Matt Arsenault authored
If the second pointer in a multi-pointer instruction is a constant, we can replace the type. llvm-svn: 269945
-
Matt Arsenault authored
llvm-svn: 269943
-
Matt Arsenault authored
Use register class that does not include them when looking for unallocated registers. This is hit by the udiv v8i64 test in the opencl integer conformance test, and takes a few seconds to compile in a debug build so no test included. llvm-svn: 269938
-
Krzysztof Parzyszek authored
llvm-svn: 269933
-
Dan Gohman authored
Don't expand divisions by constants if it would require multiple instructions. The current assumption is that engines will perform the desired optimizations. llvm-svn: 269930
-
Bryan Chan authored
Summary: The ordering of registers in BinaryRRF instructions are wrong, and affects the copysign instruction (CPSDR). This results in the wrong magnitude and sign being set. Author: zhanjunl Reviewers: kbarton, uweigand Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D20308 llvm-svn: 269922
-
Ashutosh Nema authored
Summary: MONITORX/MWAITX instructions provide similar capability to the MONITOR/MWAIT pair while adding a timer function, such that another termination of the MWAITX instruction occurs when the timer expires. The presence of the MONITORX and MWAITX instructions is indicated by CPUID 8000_0001, ECX, bit 29. The MONITORX and MWAITX instructions are intercepted by the same bits that intercept MONITOR and MWAIT. MONITORX instruction establishes a range to be monitored. MWAITX instruction causes the processor to stop instruction execution and enter an implementation-dependent optimized state until occurrence of a class of events. Opcode of MONITORX instruction is "0F 01 FA". Opcode of MWAITX instruction is "0F 01 FB". These opcode information is used in adding tests for the disassembler. These instructions are enabled for AMD's bdver4 architecture. Patch by Ganesh Gopalasubramanian! Reviewers: echristo, craig.topper, RKSimon Subscribers: RKSimon, joker.eph, llvm-commits Differential Revision: http://reviews.llvm.org/D19795 llvm-svn: 269911
-
Rafael Espindola authored
MC only needs to know if the output is PIC or not. It never has to decide about creating GOTs and PLTs for example. The only thing that MC itself uses this information for is expanding "macros" in sparc and mips. The rest I am pretty sure could be moved to CodeGen. This is a cleanup and isolates the code from future changes to Reloc::Model. llvm-svn: 269909
-
Dylan McKay authored
It defined the LLVM_AVR_GCC_COMPAT constant, which would enable/disable certain GCC-specific behaviours. There is no point conditionally turning it on/off, as it will always be turned on, and we have to maintain both code paths anyway. llvm-svn: 269904
-
Dylan McKay authored
llvm-svn: 269901
-
Dylan McKay authored
llvm-svn: 269900
-
Simon Dardis authored
Restrict the creation of compact branches so that they do meet the ISA requirements. Notably do not permit $zero to be used as a operand for compact branches and ensure that some other branches fulfil the requirement that rs != rt. Fixup cases where $rs > $rt for bnec and beqc. Recommit of rL269893 with reviewers comments. Reviewers: dsanders, vkalintiris Differential Review: http://reviews.llvm.org/D20284 llvm-svn: 269899
-
Simon Dardis authored
This reverts commit rL269893. Incorrect patch applied. llvm-svn: 269897
-
Dylan McKay authored
llvm-svn: 269895
-
Simon Dardis authored
Restrict the creation of compact branches so that they meet the ISA encoding requirements. Notably do not permit $zero to be used as a operand for compact branches and ensure that some other branches fulfil the requirement that rs != rt. Fixup cases where $rs > $rt for bnec and beqc. Reviewers: dsanders, vkalintiris Differential Review: http://reviews.llvm.org/D20284 llvm-svn: 269893
-
Chris Dewhurst authored
This change adds support for software floating point operations for Sparc targets. This is the first in a set of patches to enable software floating point on Sparc. The next patch will enable the option to be used with Clang. Differential Revision: http://reviews.llvm.org/D19265 llvm-svn: 269892
-