- Mar 18, 2013
-
-
Christian Konig authored
Signed-off-by:
Christian König <christian.koenig@amd.com> Reviewed-by:
Tom Stellard <thomas.stellard@amd.com> llvm-svn: 177273
-
Christian Konig authored
Signed-off-by:
Christian König <christian.koenig@amd.com> Reviewed-by:
Tom Stellard <thomas.stellard@amd.com> llvm-svn: 177272
-
Christian Konig authored
Unfortunately the previous fix for inserting waits for unordered defines wasn't sufficient, cause it's possible that even ordered defines are only partially used (or not used at all). Signed-off-by:
Christian König <christian.koenig@amd.com> Reviewed-by:
Tom Stellard <thomas.stellard@amd.com> llvm-svn: 177271
-
Kostya Serebryany authored
[asan] when creating string constants, set unnamed_attr and align 1 so that equal strings are merged by the linker. Observed up to 1% binary size reduction. Thanks to Anton Korobeynikov for the suggestion llvm-svn: 177264
-
Chandler Carruth authored
SmallVector and DenseMap. This speeds up SROA by 25% on PR15412. llvm-svn: 177259
-
Anton Korobeynikov authored
MinGW is almost completely compatible to MSVC, with the exception of the _tls_array global not being available. Patch by David Nadlinger! llvm-svn: 177257
-
Anton Korobeynikov authored
The linker sorts the .tls$<xyz> sections by name, and we need to make sure any extra sections we produce (e.g. for weak globals) always end up between .tls$AAA and .tls$ZZZ, even if the name starts with e.g. an underscore. Patch by David Nadlinger! llvm-svn: 177256
-
Kostya Serebryany authored
[asan] while generating the description of a global variable, emit the module name in a separate field, thus not duplicating this information if every description. This decreases the binary size (observed up to 3%). https://code.google.com/p/address-sanitizer/issues/detail?id=168 . This changes the asan API version. llvm-part llvm-svn: 177254
-
Kostya Serebryany authored
[asan] don't instrument functions with available_externally linkage. This saves a bit of compile time and reduces the number of redundant global strings generated by asan (https://code.google.com/p/address-sanitizer/issues/detail?id=167) llvm-svn: 177250
-
Jakob Stoklund Olesen authored
This computes the type of an instruction operand or result based on the records in the instruction's ins and outs lists. llvm-svn: 177244
-
Craig Topper authored
llvm-svn: 177243
-
Craig Topper authored
llvm-svn: 177242
-
- Mar 17, 2013
-
-
David Blaikie authored
Seems some accidental C++11 crept in there. Reported by the C++98 buildbots. llvm-svn: 177241
-
Michael Gottesman authored
Reduced dont-infinite-loop-during-block-escape-analysis.ll with bugpoint and moved it to retain-block-escape-analysis.ll. *NOTE* I verified that the original bug behind dont-infinite-loop-during-block-escape-analysis.ll occurs when using opt on retain-block-escape-analysis.ll. llvm-svn: 177240
-
David Blaikie authored
This is the first step to making all DIScopes have a common metadata prefix (so that things (using directives, for example) that can appear in any scope can be added to that common prefix). DIFile is itself a DIScope so the common prefix of all DIScopes cannot be a DIFile - instead it's the raw filename/directory name pair. llvm-svn: 177239
-
David Blaikie authored
llvm-svn: 177238
-
David Blaikie authored
llvm-svn: 177236
-
Jakob Stoklund Olesen authored
Not passing vector references around makes it possible to use SmallVector in most places. llvm-svn: 177235
-
Sylvestre Ledru authored
llvm-svn: 177234
-
Rafael Espindola authored
Patch by Stephen Checkoway. llvm-svn: 177233
-
Michael Gottesman authored
This test makes sure that the ObjCARC escape analysis looks at the uses of instructions which copy the block pointer value by checking all four cases where that can occur. llvm-svn: 177232
-
Hal Finkel authored
This change cleans up two issues with Altivec register spilling: 1. The spilling code was inefficient (using two instructions, and add and a load, when just one would do) 2. The code assumed that r0 would always be available (true for now, but this will change) The new code handles VR spilling just like GPR spills but forced into r+r mode. As a result, when any VR spills are present, we must now always allocate the register-scavenger spill slot. llvm-svn: 177231
-
Hal Finkel authored
As pointed out by Bill in response to r177160, these two FIXMEs can also be removed. llvm-svn: 177229
-
- Mar 16, 2013
-
-
Hal Finkel authored
As a follow-up to r158719, remove PPCRegisterInfo::avoidWriteAfterWrite. Jakob pointed out in response to r158719 that this callback is currently unused and so this has no effect (and the speedups that I thought that I had observed as a result of implementing this function must have been noise). llvm-svn: 177228
-
Andrew Trick authored
Implicit defs are not currently positional and not modeled by the per-operand machine model. Unfortunately, we treat defs that are part of the architectural instruction description, like flags, the same as other implicit defs. Really, they should have a fixed MachineInstr layout and probably shouldn't be "implicit" at all. For now, we'll change the default latency to be the max operand latency. That will give flag setting operands full latency for x86 folded loads. Other kinds of "fake" implicit defs don't occur prior to regalloc anyway, and we would like them to go away postRegAlloc as well. llvm-svn: 177227
-
Andrew Trick authored
We always supported a mixture of the old itinerary model and new per-operand model, but it required a level of indirection to map itinerary classes to SchedRW lists. This was done for ARM A9. Now we want to define x86 SchedRW lists, with the goal of removing its itinerary classes, but still support the itineraries in the mean time. When I original developed the model, Atom did not have itineraries, so there was no reason to expect this requirement. llvm-svn: 177226
-
Sean Silva authored
llvm-svn: 177224
-
Aaron Ballman authored
llvm-svn: 177223
-
Craig Topper authored
Previously we weren't skipping the VVVV encoded register. Based on patch by Michael Liao. llvm-svn: 177221
-
Jakob Stoklund Olesen authored
Since almost all X86 instructions can fold loads, use a multiclass to define register/memory pairs of SchedWrites. An X86FoldableSchedWrite represents the register version of an instruction. It holds a reference to the SchedWrite to use when the instruction folds a load. This will be used inside multiclasses that define rr and rm instruction versions together. llvm-svn: 177210
-
- Mar 15, 2013
-
-
Jakob Stoklund Olesen authored
Don't require instructions to inherit Sched<...>. Sometimes it is more convenient to say: let SchedRW = ... in { ... } Which is now possible. llvm-svn: 177199
-
Daniel Dunbar authored
- The previous implementation always constructed the StringMap entry, even if the key was present in the set. llvm-svn: 177178
-
Michael J. Spencer authored
llvm-svn: 177175
-
Arnold Schwaighofer authored
I was too pessimistic in r177105. Vector selects that fit into a legal register type lower just fine. I was mislead by the code fragment that I was using. The stores/loads that I saw in those cases came from lowering the conditional off an address. Changing the code fragment to: %T0_3 = type <8 x i18> %T1_3 = type <8 x i1> define void @func_blend3(%T0_3* %loadaddr, %T0_3* %loadaddr2, %T1_3* %blend, %T0_3* %storeaddr) { %v0 = load %T0_3* %loadaddr %v1 = load %T0_3* %loadaddr2 ==> FROM: ;%c = load %T1_3* %blend ==> TO: %c = icmp slt %T0_3 %v0, %v1 ==> USE: %r = select %T1_3 %c, %T0_3 %v0, %T0_3 %v1 store %T0_3 %r, %T0_3* %storeaddr ret void } revealed this mistake. radar://13403975 llvm-svn: 177170
-
Silviu Baranga authored
Adding an A15 specific optimization pass for interactions between S/D/Q registers. The pass handles all the required transformations pre-regalloc. llvm-svn: 177169
-
Benjamin Kramer authored
Fixes PR15520. llvm-svn: 177167
-
Hal Finkel authored
Unaligned access is supported on PPC for non-vector types, and is generally more efficient than manually expanding the loads and stores. A few of the existing test cases were using expanded unaligned loads and stores to test other features (like load/store with update), and for these test cases, unaligned access remains disabled. llvm-svn: 177160
-
Arnold Schwaighofer authored
A vector fptrunc and fpext simply gets split into scalar instructions. radar://13192358 llvm-svn: 177159
-
Hal Finkel authored
In preparation for the addition of other SIMD ISA extensions (such as QPX) we need to make sure that all Altivec patterns are properly predicated on having Altivec support. No functionality change intended (one test case needed to be updated b/c it assumed that Altivec intrinsics would be supported without enabling Altivec support). llvm-svn: 177152
-
Alexey Samsonov authored
llvm-svn: 177144
-