- Sep 16, 2011
-
-
Benjamin Kramer authored
llvm-svn: 139892
-
Jakob Stoklund Olesen authored
The leaveIntvAfter() function normally inserts a back-copy after the requested instruction, making the back-copy kill the live range. In spill mode, try to insert the back-copy before the last use instead. That means the last use becomes the kill instead of the back-copy. This lowers the register pressure because the last use can now redefine the same register it was reading. This will also improve compile time: The back-copy isn't a kill, so hoisting it in hoistCopiesForSize() won't force a recomputation of the source live range. Similarly, if the back-copy isn't hoisted by the splitter, the spiller will not attempt hoisting it locally. llvm-svn: 139883
-
Jakob Stoklund Olesen authored
If the source register is live after the copy being spilled, there is no point to hoisting it. Hoisting inside a basic block only serves to resolve interferences by shortening the live range of the source. llvm-svn: 139882
-
Jim Grosbach authored
llvm-svn: 139877
-
Owen Anderson authored
Don't attach annotations to MCInst's. Instead, have the disassembler return, and the printer accept, an annotation string which can be passed through if the client cares about annotations. llvm-svn: 139876
-
Ivan Krasin authored
gold plugin is built with Large File Support (sizeof(off_t) == 64 on i686) and the rest of LLVM is built w/o Large File Support (sizeof(off_t) == 32 on i686) which corrupts the stack. llvm-svn: 139873
-
Bruno Cardoso Lopes authored
llvm-svn: 139872
-
Jim Grosbach authored
llvm-svn: 139870
-
Eli Friedman authored
llvm-svn: 139869
-
Eli Friedman authored
llvm-svn: 139865
-
Bruno Cardoso Lopes authored
time for describing high latency ones and for recognizting loads from the same base pointer llvm-svn: 139864
-
- Sep 15, 2011
-
-
Benjamin Kramer authored
llvm-svn: 139859
-
Bruno Cardoso Lopes authored
Also add the AVX versions and add comments! llvm-svn: 139854
-
Eli Friedman authored
llvm-svn: 139851
-
Benjamin Kramer authored
llvm-svn: 139848
-
Benjamin Kramer authored
llvm-svn: 139846
-
Jakob Stoklund Olesen authored
When -split-spill-mode is enabled, spill hoisting is performed by SplitKit instead of by InlineSpiller. This hidden command line option is for testing the splitter spill mode. llvm-svn: 139845
-
Jim Grosbach authored
llvm-svn: 139843
-
Andrew Trick authored
llvm-svn: 139842
-
Jim Grosbach authored
llvm-svn: 139839
-
Benjamin Kramer authored
DWARF: Put all the pieces we have together and provide a single accessor to DIContext that provides line information when given an address. llvm-svn: 139836
-
Benjamin Kramer authored
DWARF: Remove accessors that parse the whole line table section in one go, this can't possibly work. The address size is specified by the compile unit associated with a line table, there is no global address size. llvm-svn: 139835
-
Jim Grosbach authored
llvm-svn: 139828
-
Owen Anderson authored
The the MC disassembler C API to print in verbose mode. Perhaps there should be a parameter to request verbose mode? llvm-svn: 139821
-
Owen Anderson authored
Add support for stored annotations to MCInst, and provide facilities for MC-based InstPrinters to print them out. Enhance the ARM and X86 InstPrinter's to do so in verbose mode. llvm-svn: 139820
-
Jakob Stoklund Olesen authored
Fix the stats counters to reflect that. llvm-svn: 139819
-
Bruno Cardoso Lopes authored
take into consideration the presence of AVX. This change, together with the SSEDomainFix enabled for AVX, makes AVX codegen to always (hopefully) emit the same code as SSE for 128-bit vector ops. I don't have a testcase for this, but AVX now beats SSE in performance for 128-bit ops in the majority of programas in the llvm testsuite llvm-svn: 139817
-
Bruno Cardoso Lopes authored
llvm-svn: 139816
-
Jakob Stoklund Olesen authored
The number of spills could go negative since a folded COPY is just a spill, and it may be eliminated. llvm-svn: 139815
-
Jim Grosbach authored
llvm-svn: 139813
-
Benjamin Kramer authored
llvm-svn: 139808
-
Jim Grosbach authored
Assembler private local symbols aren't legal targets of symbol attributes, so issue a diagnostic for them. Based on patch by Stepan Dyatkovskiy. llvm-svn: 139807
-
Jakob Stoklund Olesen authored
Adjust counters when removing spill and reload instructions. We still don't account for reloads being removed by eliminateDeadDefs(). llvm-svn: 139806
-
Benjamin Kramer authored
llvm-svn: 139799
-
Jim Grosbach authored
If we see an EOF w/o a preceding end-of-line, return an EndOfStatement token before returning the Eof token. Based on patch by Stepan Dyatkovskiy. llvm-svn: 139798
-
Jakob Stoklund Olesen authored
When traceSiblingValue() encounters a PHI-def value created by live range splitting, don't look at all the predecessor blocks. That can be very expensive in a complicated CFG. Instead, consider that all the non-PHI defs jointly dominate all the PHI-defs. Tracing directly to all the non-PHI defs is much faster that zipping around in the CFG when there are many PHIs with many predecessors. This significantly improves compile time for indirectbr interpreters. llvm-svn: 139797
-
Jim Grosbach authored
llvm-svn: 139796
-
Jim Grosbach authored
llvm-svn: 139794
-
Jakob Stoklund Olesen authored
Blocks with multiple PHI successors only need to go on the worklist once. Use a SmallPtrSet to track the live-out blocks that have already been handled. This is a lot faster than the two live range check we would otherwise do. Also stop recomputing hasPHIKill flags. Like RenumberValues(), it is conservatively correct to leave them in, and they are not used for anything important. llvm-svn: 139792
-
Jakob Stoklund Olesen authored
It does, after all. RemoveCopyByCommutingDef rewrites the uses of one particular value number in A. It doesn't know how to rewrite phi uses, so there can't be any. llvm-svn: 139787
-