- Jan 23, 2011
-
-
Ted Kremenek authored
clang's -Wuninitialized-experimental warning. While these don't look like real bugs, clang's -Wuninitialized-experimental analysis is stricter than GCC's, and these fixes have the benefit of being general nice cleanups. llvm-svn: 124073
-
Rafael Espindola authored
llvm-svn: 124071
-
Chris Lattner authored
that have PHI or select uses of their element pointers. This can often happen when instcombine sinks two loads into a successor, inserting a phi or select. With this patch, we can scalarize the alloca, but the pinned elements are not yet promoted. This is still a win for large aggregates where only one element is used. This fixes rdar://8904039 and part of rdar://7339113 (poor codegen on stringswitch). llvm-svn: 124070
-
Cameron Zwarich authored
on test-suite + SPEC2000 & SPEC2006. llvm-svn: 124068
-
Chris Lattner authored
No functionality change. llvm-svn: 124067
-
Chris Lattner authored
handle the "Transformation preventing inst" printing, so that -scalarrepl -debug will always print the rejected instruction. No functionality change. llvm-svn: 124066
-
Chris Lattner authored
X86 backend has been fixed. llvm-svn: 124064
-
Nick Lewycky authored
llvm-svn: 124062
-
Rafael Espindola authored
Add support for SHT_X86_64_UNWIND. llvm-svn: 124059
-
Rafael Espindola authored
llvm-svn: 124056
-
Rafael Espindola authored
llvm-svn: 124054
-
- Jan 22, 2011
-
-
Nick Lewycky authored
"make check" alone. llvm-svn: 124046
-
Eric Christopher authored
that we can change from indirect to direct. llvm-svn: 124045
-
Eric Christopher authored
target function. Fixes part of rdar://8546196 llvm-svn: 124044
-
Venkatraman Govindaraju authored
Pass sret arguments through the stack instead of through registers in Sparc backend. It makes the code generated more compliant with the sparc32 ABI. llvm-svn: 124030
-
Venkatraman Govindaraju authored
llvm-svn: 124027
-
- Jan 21, 2011
-
-
Dan Gohman authored
how they should be checked. llvm-svn: 123999
-
Venkatraman Govindaraju authored
Rename FLUSH to FLUSHW. Output "ta 3" instead of a "flushw" instruction if v8 instruction set is used. llvm-svn: 123997
-
Owen Anderson authored
A == B, and A > B, does not mean we can fold it to true. We still need to check for A ? B (A unordered B). llvm-svn: 123993
-
Evan Cheng authored
1. Fixed ARM pc adjustment. 2. Fixed dynamic-no-pic codegen 3. CSE of pc-relative load of global addresses. It's now enabled by default for Darwin. llvm-svn: 123991
-
Renato Golin authored
Clang was not parsing target triples involving EABI and was generating wrong IR (wrong PCS) and passing the wrong information down llc via the target-triple printed in IR. I've fixed this by adding the parsing of EABI into LLVM's Triple class and using it to choose the correct PCS in Clang's Tools. A Clang patch is on its way to use this infrastructure. llvm-svn: 123990
-
Oscar Fuentes authored
Patch by arrowdodger! llvm-svn: 123976
-
Bruno Cardoso Lopes authored
qadd and qdadd uses "rd, rm, rn", the same applies to the 'sub' variants. This is described in ARM manuals and matches the encoding used by the gnu assembler. llvm-svn: 123975
-
Venkatraman Govindaraju authored
llvm-svn: 123974
-
Nick Lewycky authored
instructions. llvm-svn: 123973
-
Andrew Trick authored
DAG. Disable using "-disable-sched-cycles". For ARM, this enables a framework for modeling the cpu pipeline and counting stalls. It also activates several heuristics to drive scheduling based on the model. Scheduling is inherently imprecise at this stage, and until spilling is improved it may defeat attempts to schedule. However, this framework provides greater control over tuning codegen. Although the flag is not target-specific, it should have very little affect on the default scheduler used by x86. The only two changes that affect x86 are: - scheduling a high-latency operation bumps the current cycle so independent operations can have their latency covered. i.e. two independent 4 cycle operations can produce results in 4 cycles, not 8 cycles. - Two operations with equal register pressure impact and no latency-based stalls on their uses will be prioritized by depth before height (height is irrelevant if no stalls occur in the schedule below this point). llvm-svn: 123971
-
Andrew Trick authored
flags. They are still not enable in this revision. Added TargetInstrInfo::isZeroCost() to fix a fundamental problem with the scheduler's model of operand latency in the selection DAG. Generalized unit tests to work with sched-cycles. llvm-svn: 123969
-
Chris Lattner authored
llvm-svn: 123968
-
Chris Lattner authored
llvm-svn: 123965
-
Nick Lewycky authored
a select. A vector select is pairwise on each element so we'd need a new condition with the right number of elements to select on. Fixes PR8994. llvm-svn: 123963
-
Michael J. Spencer authored
llvm-svn: 123962
-
Nick Lewycky authored
While here, I'd like to complain about how vector is not an aggregate type according to llvm::Type::isAggregateType(), but they're listed under aggregate types in the LangRef and zero vectors are stored as ConstantAggregateZero. llvm-svn: 123956
-
Evan Cheng authored
value, the "add pc" must be CSE'ed at the same time. We could follow the same approach as T2 by adding pseudo instructions that combine the ldr + "add pc". But the better approach is to use movw + movt (which I will enable soon), so I'll leave this as a TODO. llvm-svn: 123949
-
- Jan 20, 2011
-
-
Tobias Grosser authored
The PassManager did not implement the transitivity of requiredTransitive. This was unnoticed since 2006. llvm-svn: 123942
-
Bruno Cardoso Lopes authored
llvm-svn: 123936
-
Bruno Cardoso Lopes authored
llvm-svn: 123930
-
Bruno Cardoso Lopes authored
llvm-svn: 123929
-
Bruno Cardoso Lopes authored
- Use a more appropriate name for Owen's ARM Parser isMCR hack since the same operands can be present in cdp/cdp2 instructions. Also increase the hack with cdp/cdp2 instructions. - Fix the encoding of cdp/cdp2 instructions for ARM (no thumb and thumb2 yet) and add testcases for t hem. llvm-svn: 123927
-
Jakob Stoklund Olesen authored
The value mapping gets confused about which original values have multiple new definitions so they may need phi insertions. This could probably be simplified by letting enterIntvBefore() take a live range to be added following the instruction. As long as the range stays inside the same basic block, value mapping shouldn't be a problem. llvm-svn: 123926
-
Jakob Stoklund Olesen authored
llvm-svn: 123925
-