- Jan 29, 2011
-
-
Evan Cheng authored
Re-commit r124462 with fixes. Tail recursion elim will now dup ret into unconditional predecessor to enable TCE on demand. llvm-svn: 124518
-
- Jan 28, 2011
-
-
Evan Cheng authored
llvm-svn: 124478
-
Nick Lewycky authored
llvm-svn: 124472
-
Rafael Espindola authored
llvm-svn: 124468
-
Evan Cheng authored
branches. PR8575, rdar://5134905, rdar://8911460. - Allow codegen tail duplication to dup small return blocks after register allocation is done. llvm-svn: 124462
-
- Jan 27, 2011
-
-
Andrew Trick authored
llvm-svn: 124443
-
Andrew Trick authored
rdar://problem/8893967: JM/lencod miscompile at -arch armv7 -mthumb -O3 Added ResurrectKill to remove kill flags after we decide to reused a physical register. And (hopefully) ensure that we call it in all the right places. Sorry, I'm not checking in a unit test given that it's a miscompile I can't reproduce easily with a toy example. Failures in the rewriter depend on a series of heuristic decisions maked during one of the many upstream phases in codegen. This case would require coercing regalloc to generate a couple of rematerialzations in a way that causes the scavenger to reuse the same register at just the wrong point. The general way to test this is to implement kill flags verification. Then we could have a simple, robust compile-only unit test. That would be worth doing if the whole pass was not about to disappear. At this point we focus verification work on the next generation of regalloc. llvm-svn: 124442
-
Devang Patel authored
llvm-svn: 124397
-
Devang Patel authored
Take 2. This includes fix for dragonegg crash. llvm-svn: 124380
-
Bob Wilson authored
Linear scan regalloc is currently assuming that any register aliased with a member of a regclass must also be in at least one regclass. That is not always true. For example, for X86, RIP is in a regclass but IP is not. If you're unlucky, this can cause a crash by invalidating the iterator. llvm-svn: 124365
-
Matt Beaumont-Gay authored
llvm-svn: 124350
-
Matt Beaumont-Gay authored
llvm-svn: 124346
-
Devang Patel authored
llvm-svn: 124339
-
- Jan 26, 2011
-
-
Bill Wendling authored
llvm-svn: 124331
-
Devang Patel authored
llvm-svn: 124327
-
Devang Patel authored
llvm-svn: 124320
-
David Greene authored
[AVX] Add INSERT_SUBVECTOR and support it on x86. This provides a default implementation for x86, going through the stack in a similr fashion to how the codegen implements BUILD_VECTOR. Eventually this will get matched to VINSERTF128 if AVX is available. llvm-svn: 124307
-
Devang Patel authored
llvm-svn: 124302
-
Devang Patel authored
llvm-svn: 124301
-
Devang Patel authored
llvm-svn: 124300
-
David Greene authored
[AVX] Support EXTRACT_SUBVECTOR on x86. This provides a default implementation of EXTRACT_SUBVECTOR for x86, going through the stack in a similr fashion to how the codegen implements BUILD_VECTOR. Eventually this will get matched to VEXTRACTF128 if AVX is available. llvm-svn: 124292
-
Jakob Stoklund Olesen authored
No functional change. llvm-svn: 124257
-
Devang Patel authored
llvm-svn: 124245
-
- Jan 25, 2011
-
-
Devang Patel authored
Resolve DanglingDbgValue of PHI nodes where the use follows dbg.value intrinisic. llvm-svn: 124203
-
Devang Patel authored
This assertion is too restrictive, it does not apply for dangling dbg value nodes (nodes where dbg.value intrinsic preceds use of the value). llvm-svn: 124202
-
- Jan 24, 2011
-
-
Anton Korobeynikov authored
llvm-svn: 124150
-
Devang Patel authored
llvm-svn: 124142
-
Devang Patel authored
llvm-svn: 124138
-
Andrew Trick authored
rdar://problem/8893967 llvm-svn: 124137
-
- Jan 23, 2011
-
-
Rafael Espindola authored
llvm-svn: 124077
-
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
Add support for SHT_X86_64_UNWIND. llvm-svn: 124059
-
Rafael Espindola authored
llvm-svn: 124056
-
Rafael Espindola authored
llvm-svn: 124054
-
- Jan 21, 2011
-
-
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
-
- Jan 20, 2011
-
-
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
-
Eric Christopher authored
llvm-svn: 123909
-
Eric Christopher authored
to add/sub by doing the normal operation and then checking for overflow afterwards. This generally relies on the DAG handling the later invalid operations as well. Fixes the 64-bit part of rdar://8622122 and rdar://8774702. llvm-svn: 123908
-