- Dec 06, 2010
-
-
Chris Lattner authored
llvm-svn: 120994
-
Chris Lattner authored
llvm-svn: 120993
-
John McCall authored
the LHS, or else the pointer might be invalid. This is kindof dumb, but go ahead and make sure we're doing that for l-value scalar assignment, which fixes a miscompile of obj-c++.dg/block-seq.mm. Leave a FIXME for how to solve this problem for agg __blocks. llvm-svn: 120992
-
Michael J. Spencer authored
llvm-svn: 120991
-
John McCall authored
build one when either of the operands calls itself type-dependent; previously we were building when one of the operand types was dependent, which is not always the same thing and which can lead to unfortunate inconsistencies later. Fixes PR8739. llvm-svn: 120990
-
Michael J. Spencer authored
llvm-svn: 120989
-
Michael J. Spencer authored
llvm-svn: 120988
-
Michael J. Spencer authored
llvm-svn: 120987
-
Michael J. Spencer authored
llvm-svn: 120986
-
Michael J. Spencer authored
llvm-svn: 120985
-
Michael J. Spencer authored
implementation needs it for wchar_t and SmallVectorImpl in general. llvm-svn: 120984
-
Che-Liang Chiou authored
llvm-svn: 120982
-
Rafael Espindola authored
that on the ELF writer to detect a section we created. llvm-svn: 120981
-
Rafael Espindola authored
llvm-svn: 120980
-
Rafael Espindola authored
llvm-svn: 120979
-
Rafael Espindola authored
llvm-svn: 120978
-
Rafael Espindola authored
llvm-svn: 120977
-
Greg Clayton authored
Add bug number for current expected failures. llvm-svn: 120976
-
Greg Clayton authored
more completely. Example expressions are in the comments. llvm-svn: 120975
-
Chris Lattner authored
memcpy's like: memcpy(A, B) memcpy(A, C) we cannot delete the first memcpy as dead if A and C might be aliases. If so, we actually get: memcpy(A, B) memcpy(A, A) which is not correct to transform into: memcpy(A, A) This patch was heavily influenced by Jakub Staszak's patch in PR8728, thanks Jakub! llvm-svn: 120974
-
Chris Lattner authored
llvm-svn: 120973
-
Sean Callanan authored
(for example, string literals) were being flagged erroneously as undefined external variables. llvm-svn: 120972
-
Evan Cheng authored
llvm-svn: 120971
-
Ted Kremenek authored
llvm-svn: 120970
-
Ted Kremenek authored
Environment::lookupExpr() and move its implementation out-of-line. llvm-svn: 120969
-
Ted Kremenek authored
llvm-svn: 120968
-
Greg Clayton authored
Added a less than operator that will compare the internal opaque pointer values so SBBroadcaster objects can be contained in ordered containers or sorted. llvm-svn: 120967
-
NAKAMURA Takumi authored
llvm-svn: 120966
-
Evan Cheng authored
llvm-svn: 120965
-
Evan Cheng authored
llvm-svn: 120964
-
- Dec 05, 2010
-
-
Cameron Zwarich authored
StrongPHIElimination. llvm-svn: 120961
-
Evan Cheng authored
difficult on current ARM implementations for a few reasons. 1. Even though a single vmla has latency that is one cycle shorter than a pair of vmul + vadd, a RAW hazard during the first (4? on Cortex-a8) can cause additional pipeline stall. So it's frequently better to single codegen vmul + vadd. 2. A vmla folowed by a vmul, vmadd, or vsub causes the second fp instruction to stall for 4 cycles. We need to schedule them apart. 3. A vmla followed vmla is a special case. Obvious issuing back to back RAW vmla + vmla is very bad. But this isn't ideal either: vmul vadd vmla Instead, we want to expand the second vmla: vmla vmul vadd Even with the 4 cycle vmul stall, the second sequence is still 2 cycles faster. Up to now, isel simply avoid codegen'ing fp vmla / vmls. This works well enough but it isn't the optimial solution. This patch attempts to make it possible to use vmla / vmls in cases where it is profitable. A. Add missing isel predicates which cause vmla to be codegen'ed. B. Make sure the fmul in (fadd (fmul)) has a single use. We don't want to compute a fmul and a fmla. C. Add additional isel checks for vmla, avoid cases where vmla is feeding into fp instructions (except for the #3 exceptional case). D. Add ARM hazard recognizer to model the vmla / vmls hazards. E. Add a special pre-regalloc case to expand vmla / vmls when it's likely the vmla / vmls will trigger one of the special hazards. Work in progress, only A+B are enabled. llvm-svn: 120960
-
Cameron Zwarich authored
llvm-svn: 120959
-
Frits van Bommel authored
Clarify some of the differences between indexing with getelementptr and indexing with insertvalue/extractvalue. llvm-svn: 120957
-
Frits van Bommel authored
Also add asserts that the indices are valid in InsertValueInst::init(). ExtractValueInst already asserts when constructed with invalid indices. llvm-svn: 120956
-
Greg Clayton authored
token. llvm-svn: 120954
-
Cameron Zwarich authored
PHIElimination.h. llvm-svn: 120953
-
Cameron Zwarich authored
time, this method existed, but now PHIElimination uses the method of the same name on MachineBasicBlock. llvm-svn: 120952
-
Cameron Zwarich authored
function so that it can be shared with StrongPHIElimination. llvm-svn: 120951
-
Greg Clayton authored
llvm-svn: 120949
-