- Aug 03, 2012
-
-
Jakob Stoklund Olesen authored
The VNInfo::HAS_PHI_KILL is only half supported. We precompute it in LiveIntervalAnalysis, but it isn't properly updated by live range splitting and functions like shrinkToUses(). It is only used in one place: RegisterCoalescer::removeCopyByCommutingDef(). This patch changes that function to use a new LiveIntervals::hasPHIKill() function that computes the flag for a given value number. llvm-svn: 161254
-
Jakob Stoklund Olesen authored
llvm-svn: 161242
-
Jakob Stoklund Olesen authored
This functionality was added before we started running DeadMachineInstructionElim on all targets. It serves no purpose now. llvm-svn: 161241
-
Gabor Greif authored
this makes this hack a bit more bearable for poor souls who need to pass custom preprocessor flags to the build process llvm-svn: 161240
-
Bob Wilson authored
Fast isel doesn't currently have support for translating builtin function calls to target instructions. For embedded environments where the library functions are not available, this is a matter of correctness and not just optimization. Most of this patch is just arranging to make the TargetLibraryInfo available in fast isel. <rdar://problem/12008746> llvm-svn: 161232
-
Bob Wilson authored
This just provides a way to look up a LibFunc::Func enum value for a function name. Alphabetize the enums and function names so we can use a binary search. llvm-svn: 161231
-
Jush Lu authored
llvm-svn: 161230
-
Bill Wendling authored
The "findUsedStructTypes" method is very expensive to run. It needs to be optimized so that LTO can run faster. Splitting this method out of the Module class will help this occur. For instance, it can keep a list of seen objects so that it doesn't process them over and over again. llvm-svn: 161228
-
Eric Christopher authored
but somehow managed to be dropped later. Patch by Karel Gardas. llvm-svn: 161226
-
Jim Grosbach authored
llvm-svn: 161222
-
- Aug 02, 2012
-
-
Jim Grosbach authored
llvm-svn: 161220
-
Jim Grosbach authored
Now that TableGen supports references to NAME w/o it being explicitly referenced in the definition's own name, use that to simplify assembly InstAlias definitions in multiclasses. llvm-svn: 161218
-
Manman Ren authored
Add more comments and use early returns to reduce nesting in isLoadFoldable. Also disable folding for V_SET0 to avoid introducing a const pool entry and a const pool load. rdar://10554090 and rdar://11873276 llvm-svn: 161207
-
Jim Grosbach authored
Previously, def NAME values were only populated, and references to NAME resolved, when NAME was referenced in the 'def' entry of the multiclass sub-entry. e.g., multiclass foo<...> { def prefix_#NAME : ... } It's useful, however, to be able to reference NAME even when the default def name is used. For example, when a multiclass has 'def : Pat<...>' or 'def : InstAlias<...>' entries which refer to earlier instruction definitions in the same multiclass. e.g., multiclass myMulti<RegisterClass rc> { def _r : myI<(outs rc:$d), (ins rc:$r), "r $d, $r", []>; def : InstAlias<\"wilma $r\", (!cast<Instruction>(NAME#\"_r\") rc:$r, rc:$r)>; } llvm-svn: 161198
-
Jakob Stoklund Olesen authored
Whenever both instruction depths and instruction heights are known in a block, it is possible to compute the length of the critical path as max(depth+height) over the instructions in the block. The stored live-in lists make it possible to accurately compute the length of a critical path that bypasses the current (small) block. llvm-svn: 161197
-
Akira Hatanaka authored
of MipsTargetMachine.cpp. llvm-svn: 161191
-
Akira Hatanaka authored
test o32_cc_vararg.ll. llvm-svn: 161189
-
Jakob Stoklund Olesen authored
Don't cause regunit intervals to be computed just to verify them. Only check the already cached intervals. llvm-svn: 161183
-
Jakob Stoklund Olesen authored
LiveRangeEdit::eliminateDeadDefs() can delete a dead instruction that reads unreserved physregs. This would leave the corresponding regunit live interval dangling because we don't have shrinkToUses() for physical registers. Fix this problem by turning the instruction into a KILL instead of deleting it. This happens in a landing pad in test/CodeGen/X86/2012-05-19-CoalescerCrash.ll: %vreg27<def,dead> = COPY %EDX<kill>; GR32:%vreg27 becomes: KILL %EDX<kill> An upcoming fix to the machine verifier will catch problems like this by verifying regunit live intervals. This fixes PR13498. I am not including the test case from the PR since we already have one exposing the problem once the verifier is fixed. llvm-svn: 161182
-
Jakob Stoklund Olesen authored
llvm-svn: 161178
-
Hongbin Zheng authored
llvm-svn: 161177
-
Nuno Lopes authored
llvm-svn: 161171
-
Jiangning Liu authored
llvm-svn: 161163
-
Jiangning Liu authored
llvm-svn: 161162
-
Jiangning Liu authored
llvm-svn: 161161
-
Jiangning Liu authored
llvm-svn: 161159
-
Manman Ren authored
Machine CSE and other optimizations can remove instructions so folding is possible at peephole while not possible at ISel. This patch is a rework of r160919 and was tested on clang self-host on my local machine. rdar://10554090 and rdar://11873276 llvm-svn: 161152
-
Jakob Stoklund Olesen authored
No functional change. llvm-svn: 161149
-
Jakob Stoklund Olesen authored
llvm-svn: 161147
-
Manman Ren authored
llvm-svn: 161143
-
Jakob Stoklund Olesen authored
The height on an instruction is the minimum number of cycles from the instruction is issued to the end of the trace. Heights are computed for all instructions in and below the trace center block. The method for computing heights is different from the depth computation. As we visit instructions in the trace bottom-up, heights of used instructions are pushed upwards. This way, we avoid scanning long use lists, looking for uses in the current trace. At each basic block boundary, a list of live-in registers and their minimum heights is saved in the trace block info. These live-in lists are used when restarting depth computations on a trace that converges with an already computed trace. They will also be used to accurately compute the critical path length. llvm-svn: 161138
-
- Aug 01, 2012
-
-
Jim Grosbach authored
llvm-svn: 161134
-
Jim Grosbach authored
llvm-svn: 161133
-
Jim Grosbach authored
llvm-svn: 161132
-
Chad Rosier authored
llvm-svn: 161122
-
Eric Christopher authored
failures in the debug testsuite and possibly PR13486. llvm-svn: 161121
-
Nuno Lopes authored
Sorry, not used to this editor anymore.. XCode please come back; you're forgiven :) llvm-svn: 161120
-
Nuno Lopes authored
I'll commit a test to the clang tree. llvm-svn: 161118
-
Jakob Stoklund Olesen authored
llvm-svn: 161115
-
Elena Demikhovsky authored
llvm-svn: 161110
-