- Oct 09, 2010
-
-
Evan Cheng authored
llvm-svn: 116119
-
Jakob Stoklund Olesen authored
are still way too long, but it's a start. No functional change intended. llvm-svn: 116116
-
- Oct 08, 2010
-
-
Anton Korobeynikov authored
Such a check does not make any sense in presense of inlining and other compiler-dependent stuff. This should fix bunch of warnings on mingw32. llvm-svn: 116113
-
Jakob Stoklund Olesen authored
llvm-svn: 116105
-
Rafael Espindola authored
are easier to diff with those produced by llvm-mc. llvm-svn: 116095
-
Evan Cheng authored
llvm-svn: 116081
-
Evan Cheng authored
implicit. e.g. %D6<def>, %D7<def> = VLD1q16 %R2<kill>, 0, ..., %Q3<imp-def> %Q1<def> = VMULv8i16 %Q1<kill>, %Q3<kill>, ... The real definition indices are 0,1. llvm-svn: 116080
-
Devang Patel authored
llvm-svn: 116061
-
Jakob Stoklund Olesen authored
connected components. These components should be allocated different virtual registers because there is no reason for them to be allocated together. Add the ConnectedVNInfoEqClasses class to calculate the connected components, and move values to new LiveIntervals. Use it from SplitKit::rewrite by creating new virtual registers for the components. llvm-svn: 116006
-
Owen Anderson authored
llvm-svn: 115996
-
Devang Patel authored
llvm-svn: 115988
-
- Oct 07, 2010
-
-
Jakob Stoklund Olesen authored
llvm-svn: 115951
-
Jakob Stoklund Olesen authored
llvm-svn: 115950
-
Owen Anderson authored
llvm-svn: 115949
-
Jakob Stoklund Olesen authored
do one find(). llvm-svn: 115929
-
Jakob Stoklund Olesen authored
llvm-svn: 115928
-
Jakob Stoklund Olesen authored
This function is intended to be used when inserting a machine instruction that trivially restricts the legal registers, like LEA requiring a GR32_NOSP argument. llvm-svn: 115875
-
Jakob Stoklund Olesen authored
llvm-svn: 115874
-
- Oct 06, 2010
-
-
Owen Anderson authored
llvm-svn: 115835
-
Devang Patel authored
llvm-svn: 115833
-
Nick Lewycky authored
llvm-svn: 115802
-
Dan Gohman authored
llvm-svn: 115792
-
Evan Cheng authored
allow target to correctly compute latency for cases where static scheduling itineraries isn't sufficient. e.g. variable_ops instructions such as ARM::ldm. This also allows target without scheduling itineraries to compute operand latencies. e.g. X86 can return (approximated) latencies for high latency instructions such as division. - Compute operand latencies for those defined by load multiple instructions, e.g. ldm and those used by store multiple instructions, e.g. stm. llvm-svn: 115755
-
Jakob Stoklund Olesen authored
llvm-svn: 115710
-
Jakob Stoklund Olesen authored
reusable, but that is no longer relevant since a split will always replace the original. llvm-svn: 115709
-
Jakob Stoklund Olesen authored
llvm-svn: 115708
-
Jakob Stoklund Olesen authored
llvm-svn: 115696
-
Jakob Stoklund Olesen authored
never kept after splitting. Keeping the original interval made sense when the split region doesn't modify the register, and the original is spilled. We can get the same effect by detecting reloaded values when spilling around copies. llvm-svn: 115695
-
Jakob Stoklund Olesen authored
llvm-svn: 115694
-
- Oct 05, 2010
-
-
Jakob Stoklund Olesen authored
erasing it from the visited set. That ensures we create the right phi defs. llvm-svn: 115666
-
Jakob Stoklund Olesen authored
Insert copy after defining instruction. Fix LiveIntervalMap::extendTo to properly handle live segments starting before the current basic block. Make sure the open live range is extended to the inserted copy's use slot. llvm-svn: 115665
-
Jakob Stoklund Olesen authored
llvm-svn: 115650
-
Jakob Stoklund Olesen authored
llvm-svn: 115649
-
Owen Anderson authored
Use a more efficient lowering of uint64_t --> float that can take advantage of hardware signed integer conversion without having to do a double cast (uint64_t --> double --> float). This is based on the algorithm from compiler_rt's __floatundisf for X86-64. llvm-svn: 115634
-
Evan Cheng authored
// %a = ... // %b = and i32 %a, 2 // %c = srl i32 %b, 1 // brcond i32 %c ... // // into // // %a = ... // %b = and i32 %a, 2 // %c = setcc eq %b, 0 // brcond %c ... Make sure it restores local variable N1, which corresponds to the condition operand if it fails to match. This apparently breaks TCE but since that backend isn't in the tree I don't have a test for it. llvm-svn: 115571
-
- Oct 04, 2010
-
-
Lang Hames authored
Removed the older style (in-allocator) problem construction system from the PBQP allocator. Problem construction is now done exclusively with the new builders. llvm-svn: 115502
-
- Oct 02, 2010
-
-
Jakob Stoklund Olesen authored
llvm-svn: 115408
-
Bob Wilson authored
scheduling change in svn 115121. The CriticalAntiDepBreaker had bad liveness information. It was calculating the KillIndices for one scheduling region in a basic block, rescheduling that region so the KillIndices were no longer valid, and then using those wrong KillIndices to make decisions for the next scheduling region. I've not been able to reduce a small testcase for this. Radar 8502534. llvm-svn: 115400
-
Jakob Stoklund Olesen authored
RemoveCopyByCommutingDef. llvm-svn: 115386
-
Jakob Stoklund Olesen authored
LiveInterval::MergeValueNumberInto instead of trying to extend LiveRanges and getting it wrong. This fixed PR8249 where a valno with a multi-segment live range was defined by an identity copy created by RemoveCopyByCommutingDef. Some of the live segments disappeared. llvm-svn: 115385
-