- Feb 08, 2013
-
-
Reed Kotler authored
same so we put in the comment field an indicator when we think we are emitting the 16 bit version. For the direct object emitter, the difference is important as well as for other passes which need an accurate count of program size. There will be other similar putbacks to this for various instructions. llvm-svn: 174747
-
Hal Finkel authored
Previously, even when a pre-increment load or store was generated, we often needed to keep a copy of the original base register for use with other offsets. If all of these offsets are constants (including the offset which was combined into the addressing mode), then this is clearly unnecessary. This change adjusts these other offsets to use the new incremented address. llvm-svn: 174746
-
Hal Finkel authored
This is a follow-up to the cost-model change in r174713 which splits the cost of a memory operation between the address computation and the actual memory access. In r174713, this cost is always added to the memory operation cost, and so BBVectorize will do the same. Currently, this new cost function is used only by ARM, and I don't have any ARM test cases for BBVectorize. Assistance in generating some good ARM test cases for BBVectorize would be greatly appreciated! llvm-svn: 174743
-
Bob Wilson authored
Aside from the question of whether we report a warning or an error when we can't satisfy a requested stack object alignment, the current implementation of this is not good. We're not providing any source location in the diagnostics and the current warning is not connected to any warning group so you can't control it. We could improve the source location somewhat, but we can do a much better job if this check is implemented in the front-end, so let's do that instead. <rdar://problem/13127907> llvm-svn: 174741
-
Bill Schmidt authored
Thanks to help from Nadav and Hal, I have a more reasonable (and even correct!) approach. This specifically penalizes the insertelement and extractelement operations for the performance hit that will occur on PowerPC processors. llvm-svn: 174725
-
Chad Rosier authored
isn't using the default calling convention. However, if the transformation is from a call to inline IR, then the calling convention doesn't matter. rdar://13157990 llvm-svn: 174724
-
Jakob Stoklund Olesen authored
llvm-svn: 174723
-
David Tweed authored
of lines which weren't being explicitly looked at and were printing incorrect results. These values clearly must lie within 32 bits, so the casts are definitely safe. llvm-svn: 174717
-
Arnold Schwaighofer authored
Adds a function to target transform info to query for the cost of address computation. The cost model analysis pass now also queries this interface. The code in LoopVectorize adds the cost of address computation as part of the memory instruction cost calculation. Only there, we know whether the instruction will be scalarized or not. Increase the penality for inserting in to D registers on swift. This becomes necessary because we now always assume that address computation has a cost and three is a closer value to the architecture. radar://13097204 llvm-svn: 174713
-
Michael Kuperstein authored
llvm-svn: 174709
-
Bill Wendling authored
Attribute references are of this form: define void @foo() #0 #1 #2 { ... } Parse them for function attributes. If there's more than one reference, then they are merged together. llvm-svn: 174697
-
Reed Kotler authored
allowed size for the instruction. This code uses RegScavenger to fix this. We sometimes need 2 registers for Mips16 so we must handle things differently than how register scavenger is normally used. llvm-svn: 174696
-
Andrew Trick authored
This reverts commit 3854a5d90fee52af1065edbed34521fff6cdc18d. This causes a clang unit test to hang: vtable-available-externally.cpp. llvm-svn: 174692
-
Bill Wendling authored
The functionality of ParseOptionalFuncAttrs was there in ParseFnAttributeValuePairs. So just use that instead. llvm-svn: 174686
-
Michael Ilseman authored
llvm-svn: 174675
-
- Feb 07, 2013
-
-
Nadav Rotem authored
llvm-svn: 174671
-
Akira Hatanaka authored
llvm-svn: 174666
-
Eric Christopher authored
llvm-svn: 174664
-
Eric Christopher authored
syms before constructing the compile units so we're not emitting section references to sections not there already. llvm-svn: 174663
-
Will Schmidt authored
Add #include <unistd.h> to OProfileWrapper.cpp. This provides the declarations for 'read' and 'close' that are otherwise missing, and result in 'error: <foo> was not declared in this scope'. This matches the issue as reported in bug 15055 "Can no longer compile LLVM with --with-oprofile" llvm-svn: 174661
-
Bill Schmidt authored
Certain vector operations don't vectorize well with the current PowerPC implementation. Element insert/extract performs poorly without VSX support because Altivec requires going through memory. SREM, UREM, and VSELECT all produce bad scalar code. There's a lot of work to do for the cost model before autovectorization will be tuned well, and this is not an attempt to address the larger problem. llvm-svn: 174660
-
Akira Hatanaka authored
original JALR instruction with one register operand to be a pseudo-instruction. llvm-svn: 174657
-
Tom Stellard authored
Remove all the unused code. Patch by: Christian König Signed-off-by:
Christian König <christian.koenig@amd.com> Reviewed-by:
Tom Stellard <thomas.stellard@amd.com> llvm-svn: 174656
-
Tom Stellard authored
Allows nexuiz to run with radeonsi. Patch by: Michel Dänzer Signed-off-by:
Michel Dänzer <michel.daenzer@amd.com> Reviewed-by:
Tom Stellard <thomas.stellard@amd.com> llvm-svn: 174655
-
Tom Stellard authored
20 more little piglits with radeonsi. Patch by: Michel Dänzer Signed-off-by:
Michel Dänzer <michel.daenzer@amd.com> Reviewed-by:
Tom Stellard <thomas.stellard@amd.com> llvm-svn: 174654
-
Tom Stellard authored
The _SGPR variants where wrong. Patch by: Christian König Signed-off-by:
Christian König <christian.koenig@amd.com> Reviewed-by:
Tom Stellard <thomas.stellard@amd.com> llvm-svn: 174653
-
Tom Stellard authored
v2: rebased on current upstream Patch by: Christian König Signed-off-by:
Christian König <christian.koenig@amd.com> Reviewed-by:
Tom Stellard <thomas.stellard@amd.com> llvm-svn: 174652
-
Tom Stellard authored
This is for the case when no processor is passed to the backend. This prevents the '' is not a recognized processor for this target (ignoring processor) warning from being generated by clang. llvm-svn: 174651
-
Michael Ilseman authored
llvm-svn: 174650
-
Arnold Schwaighofer authored
We don't want too many classes in a pass and the classes obscure the details. I was going a little overboard with object modeling here. Replace classes by generic code that handles both loads and stores. No functionality change intended. llvm-svn: 174646
-
Tom Stellard authored
Patch by: Michel Dänzer Signed-off-by:
Michel Dänzer <michel.daenzer@amd.com> Reviewed-by:
Tom Stellard <thomas.stellard@amd.com> llvm-svn: 174634
-
Tom Stellard authored
Handle vectors of 1 to 16 integers. Change the intrinsic names to prevent the wrong one from being selected at runtime due to the overloading. Patch By: Michel Dänzer Signed-off-by:
Michel Dänzer <michel.daenzer@amd.com> Reviewed-by:
Tom Stellard <thomas.stellard@amd.com> llvm-svn: 174633
-
Tom Stellard authored
v1i32, v2i32, v8i32 and v16i32. Only add VGPR register classes for integer vector types, to avoid attempts copying from VGPR to SGPR registers, which is not possible. Patch By: Michel Dänzer Signed-off-by:
Michel Dänzer <michel.daenzer@amd.com> Reviewed-by:
Tom Stellard <thomas.stellard@amd.com> llvm-svn: 174632
-
Arnold Schwaighofer authored
Vector selects are cheap on NEON. They get lowered to a vbsl instruction. radar://13158753 llvm-svn: 174631
-
Michel Danzer authored
22 more little piglits with radeonsi. Reviewed-by:
Tom Stellard <thomas.stellard@amd.com> llvm-svn: 174615
-
NAKAMURA Takumi authored
Excuse me, I could not test it locally. llvm-svn: 174614
-
Tom Stellard authored
Use sub0-15 everywhere. Patch by: Michel Dänzerr Reviewed-by:
Tom Stellard <thomas.stellard@amd.com> Signed-off-by:
Michel Dänzer <michel.daenzer@amd.com> llvm-svn: 174610
-
Tom Stellard authored
These instructions compare two floating point values and return an integer true (-1) or false (0) value. When compiling code generated by the Mesa GLSL frontend, the SET*_DX10 instructions save us four instructions for most branch decisions that use floating-point comparisons. llvm-svn: 174609
-
Tom Stellard authored
llvm-svn: 174607
-
NAKAMURA Takumi authored
llvm-svn: 174602
-