- Jul 15, 2012
-
-
Nadav Rotem authored
Fix a bug in the scalarization of BUILD_VECTOR. BUILD_VECTOR elements may be wider than the output element type. Make sure to trunc them if needed. Together with Michael Kuperstein <michael.m.kuperstein@intel.com> llvm-svn: 160235
-
Nadav Rotem authored
llvm-svn: 160234
-
NAKAMURA Takumi authored
- Make sure existence of "barrier". - Confirm reload corresponding to spill. llvm-svn: 160232
-
Nadav Rotem authored
Allow the folding of vbroadcastRR to vbroadcastRM, where the memory operand is a spill slot. PR12782. Together with Michael Kuperstein <michael.m.kuperstein@intel.com> llvm-svn: 160230
-
Nadav Rotem authored
Add a micro-optimization to getNode of CONCAT_VECTORS when both operands are undefs. Can't find a testcase for this because VECTOR_SHUFFLE already handles undef operands, but Duncan suggested that we add this. Together with Michael Kuperstein <michael.m.kuperstein@intel.com> llvm-svn: 160229
-
Chandler Carruth authored
The notable fix is to look at any dependencies attached to the kill instruction (or other instructions between MI nad the kill) where the dependencies are specific to the register in question. The old code implicitly handled this by rejecting the transform if *any* other uses were found within the block, but after the start point. The new code directly finds the kill, and has to re-use the existing dependency scan to check for non-kill uses. This was caught by self-host, but I found the bug via inspection and use of absurd assert scaffolding to compute the kills in two ways and compare them. So I have no useful testcase for this other than "bootstrap". I'd work harder to reduce a test case if this particular code were likely to live for a long time. Thanks to Benjamin Kramer for reviewing the fix itself. llvm-svn: 160228
-
Eric Christopher authored
APInt/APSInt classes. Part of rdar://11875995 llvm-svn: 160223
-
Nadav Rotem authored
AVX: Fix a bug in getTargetVShiftNode. The shift amount has to be a 128bit vector with the same element type as the input vector. This is needed because of the patterns we have for the VP[SLL/SRA/SRL][W/D/Q] instructions. llvm-svn: 160222
-
- Jul 14, 2012
-
-
Nadav Rotem authored
The unoptimized concat_vectors isd prevented the canonicalization of the vector_shuffle node. llvm-svn: 160221
-
Jakob Stoklund Olesen authored
No test case, there are no in-tree targets that require this. llvm-svn: 160219
-
Jakob Stoklund Olesen authored
Catch uses of undefined physregs that haven't been added to basic block live-in lists. Run the verifier to pinpoint the problem. Also run the verifier when a virtual register use is not jointly dominated by defs. llvm-svn: 160207
-
Andrew Trick authored
All SCEV expressions used by LSR formulae must be safe to expand. i.e. they may not contain UDiv unless we can prove nonzero denominator. Fixes PR11356: LSR hoists UDiv. llvm-svn: 160205
-
Andrew Trick authored
This allows SCEVExpander to run on the IV expressions. This codifies an assumption made by LSR to complete the fix for PR11356, but I haven't been able to generate a separate unit test for this part. I'm adding it as an extra safety check. llvm-svn: 160204
-
Andrew Trick authored
llvm-svn: 160203
-
Joel Jones authored
intrinsics with target-indepdent intrinsics. The first instruction(s) to be handled are the vector versions of count leading zeros (ctlz). The changes here are to clang so that it generates a target independent vector ctlz when it sees an ARM dependent vector ctlz. The changes in llvm are to match the target independent vector ctlz and in VMCore/AutoUpgrade.cpp to update any existing bc files containing ARM dependent vector ctlzs with target-independent ctlzs. There are also changes to an existing test case in llvm for ARM vector count instructions and a new test for the bitcode upgrade. <rdar://problem/11831778> There is deliberately no test for the change to clang, as so far as I know, no consensus has been reached regarding how to test neon instructions in clang; q.v. <rdar://problem/8762292> llvm-svn: 160200
-
Chandler Carruth authored
kills. This is causing miscompiles that I'm working on tracking down. llvm-svn: 160196
-
- Jul 13, 2012
-
-
Chandler Carruth authored
removes the largest scaling problem in the test cases from PR13225 when ASan is switched to insert basic blocks in the natural CFG order. It may also solve some scaling problems for more normal code with large numbers of basic blocks and variables. llvm-svn: 160194
-
Galina Kistanova authored
llvm-svn: 160192
-
Jakob Stoklund Olesen authored
Call instructions are no longer required to be variadic, and variable_ops should only be used for instructions that encode a variable number of arguments, like the ARM stm/ldm instructions. llvm-svn: 160189
-
Jakob Stoklund Olesen authored
Function argument registers are added to the call SDNode, but InstrEmitter now knows how to make those operands implicit, and the call instruction doesn't have to be variadic. Explicit register operands should only be those that are encoded in the instruction, implicit register operands are for extra dependencies like call argument and return values. llvm-svn: 160188
-
Jack Carter authored
is used in cases where global symbols are directly represented in the GOT and we use an offset into the global offset table. This patch adds direct object support for R_MIPS_GOT_DISP. llvm-svn: 160183
-
Jack Carter authored
llvm-svn: 160177
-
Benjamin Kramer authored
llvm-svn: 160173
-
Alexander Kornienko authored
llvm-svn: 160170
-
Hans Wennborg authored
llvm-svn: 160168
-
Duncan Sands authored
llvm-svn: 160166
-
Duncan Sands authored
llvm-svn: 160163
-
Craig Topper authored
llvm-svn: 160162
-
Galina Kistanova authored
llvm-svn: 160159
-
Jim Grosbach authored
When dumping the DAG for a fatal 'Cannot select' back-end error, also provide the name of the function the construct is in. Useful when dealing with large testcases, as the next step is to llvm-extract the function in question to get a small(er) testcase. llvm-svn: 160152
-
Eric Christopher authored
Fixes PR13303. Patch by Paul Robinson! llvm-svn: 160148
-
- Jul 12, 2012
-
-
Jim Grosbach authored
Make sure the tblgen'erated asm matcher correctly returns numoperands+1 as the ErrorInfo when the problem was that there weren't enough operands specified. rdar://9142751 llvm-svn: 160144
-
Akira Hatanaka authored
Patch by Vladimir Medic. llvm-svn: 160143
-
Galina Kistanova authored
llvm-svn: 160142
-
Benjamin Kramer authored
Give the rdrand instructions a SideEffect flag and a chain so MachineCSE and MachineLICM don't touch it. I already had the necessary things in place for IR-level passes but missed the machine passes. llvm-svn: 160137
-
Eric Christopher authored
llvm-svn: 160134
-
Nadav Rotem authored
The LIT tests below do not specify the exact cpu model and fail on AVX2 machines, because we select different instructions such as vbroadcast, new shuffles, etc. Patch by Michael Liao. llvm-svn: 160129
-
Gabor Greif authored
llvm-svn: 160128
-
Gabor Greif authored
llvm-svn: 160127
-
NAKAMURA Takumi authored
llvm-svn: 160124
-