- Jul 02, 2013
-
-
Jakob Stoklund Olesen authored
llvm-svn: 185395
-
Jakob Stoklund Olesen authored
Patch by Benjamin Kramer! Use the BlockFrequency class instead of floats in the Hopfield network computations. This rescales the node Bias field from a [-2;2] float range to two block frequencies BiasN and BiasP pulling in opposite directions. This construct has a more predictable behavior when block frequencies saturate. The per-node scaling factors are no longer necessary, assuming the block frequencies around a bundle are consistent. This patch can cause the register allocator to make different spilling decisions. The differences should be small. llvm-svn: 185393
-
- Jul 01, 2013
-
-
David Blaikie authored
Restrict the current TLS support to X86 ELF for now. Test that we don't produce it on PPC & we can flesh that test case out with the right thing once someone implements it. llvm-svn: 185389
-
Lang Hames authored
llvm-svn: 185378
-
Cameron Zwarich authored
llvm-svn: 185367
-
Cameron Zwarich authored
When phis get lowered, destination copies are inserted using an iterator that is determined once for all phis in the block, which BuildMI interprets as a request to insert an instruction directly before the iterator. In the case of a cyclic phi, source copies may also be inserted directly before this iterator, which can cause source copies to be inserted before destination copies. The fix is to keep an iterator to the last phi and then advance it while lowering each phi in order to insert destination copies directly after the phis. llvm-svn: 185363
-
Michael Gottesman authored
Added c++ mode selector to head of SelectionDAGBuilder.h so editors open it in c++ mode instead of c mode. llvm-svn: 185348
-
- Jun 29, 2013
-
-
Benjamin Kramer authored
llvm-svn: 185266
-
- Jun 28, 2013
-
-
David Blaikie authored
Based on GCC's output for TLS variables (OP_constNu, x@dtpoff, OP_lo_user), this implements debug info support for TLS in ELF. Verified that this output is correct/sufficient on Linux (using gold - if you're using binutils-ld, you'll need something with the fix for http://sourceware.org/bugzilla/show_bug.cgi?id=15685 in it). Support on non-ELF is sort of "arbitrary" at the moment - if Apple folks want to discuss (or just go ahead & implement) how this should work in MachO, etc, I'm open. llvm-svn: 185203
-
David Blaikie authored
This is a precursor to adding debug info support for TLS which requires non-default relocations applied to TLS symbols. llvm-svn: 185202
-
David Blaikie authored
llvm-svn: 185190
-
David Blaikie authored
llvm-svn: 185189
-
David Blaikie authored
llvm-svn: 185188
-
Lang Hames authored
should expand ATOMIC_CMP_SWAP nodes the same way that it does for ATOMIC_SWAP. Since ATOMIC_LOADs on some targets (e.g. older ARM variants) get legalized to ATOMIC_CMP_SWAPs, the missing case had been causing i64 atomic loads to crash during isel. <rdar://problem/14074644> llvm-svn: 185186
-
Manman Ren authored
No functionality change. It should suffice to check the type of a debug info metadata, instead of calling Verify. For cases where we know the type of a DI metadata, use assert. Also update testing cases to make them conform to the format of DI classes. llvm-svn: 185135
-
- Jun 27, 2013
-
-
Benjamin Kramer authored
llvm-svn: 185072
-
- Jun 26, 2013
-
-
Elena Demikhovsky authored
llvm-svn: 184933
-
Elena Demikhovsky authored
Optimized integer vector multiplication operation by replacing it with shift/xor/sub when it is possible. Fixed a bug in SDIV, where the const operand is not a splat constant vector. llvm-svn: 184931
-
- Jun 25, 2013
-
-
Manman Ren authored
llvm-svn: 184866
-
Benjamin Kramer authored
This is a band-aid to fix the most severe regressions we're seeing from basing spill decisions on block frequencies, until we have a better solution. llvm-svn: 184835
-
Eric Christopher authored
llvm-svn: 184792
-
- Jun 24, 2013
-
-
Eric Christopher authored
llvm-svn: 184788
-
Eric Christopher authored
never modified. No functional change. llvm-svn: 184781
-
Andrew Trick authored
This makes it possible to write unit tests that are less susceptible to minor code motion, particularly copy placement. block-placement.ll covers this case with -pre-RA-sched=source which will soon be default. One incorrectly named block is already fixed, but without this fix, enabling new coalescing and scheduling would cause more failures. llvm-svn: 184680
-
- Jun 23, 2013
-
-
David Blaikie authored
llvm-svn: 184669
-
- Jun 22, 2013
-
-
David Blaikie authored
llvm-svn: 184643
-
Chad Rosier authored
llvm-svn: 184642
-
Andrew Trick authored
We have no targets on trunk that bundle before regalloc. However, we have been advertising regalloc as bundle safe for use with out-of-tree targets. We need to at least contain the parts of the code that are still unsafe. llvm-svn: 184620
-
David Blaikie authored
A FastISel optimization was causing us to emit no information for such parameters & when they go missing we end up emitting a different function type. By avoiding that shortcut we not only get types correct (very important) but also location information (handy) - even if it's only live at the start of a function & may be clobbered later. Reviewed/discussion by Evan Cheng & Dan Gohman. llvm-svn: 184604
-
- Jun 21, 2013
-
-
Michael Liao authored
When (srl (anyextend x), c) is folded into (anyextend (srl x, c)), the high bits are not cleared. Add 'and' to clear off them. llvm-svn: 184575
-
Andrew Trick authored
llvm-svn: 184574
-
Andrew Trick authored
llvm-svn: 184573
-
Andrew Trick authored
Live intervals for dead physregs may be created during coalescing. We need to update these in the event that their instruction goes away. crash.ll is the unit test that catches it when MI sched is enabled on X86. llvm-svn: 184572
-
Andrew Trick authored
I want to add logic to handle more cases. llvm-svn: 184571
-
Andrew Trick authored
llvm-svn: 184570
-
Andrew Trick authored
llvm-svn: 184569
-
Andrew Trick authored
Always coalesce in forward order to propagate rematerialization. I'm fixing this option so I can enable it by default soon. llvm-svn: 184568
-
Andrew Trick authored
llvm-svn: 184567
-
Andrew Trick authored
llvm-svn: 184565
-
Andrew Trick authored
llvm-svn: 184564
-