| Commit message (Collapse) | Author | Age | Files | Lines | 
| | 
| 
| 
|  | 
llvm-svn: 139928
 | 
| | 
| 
| 
|  | 
llvm-svn: 139926
 | 
| | 
| 
| 
|  | 
llvm-svn: 139925
 | 
| | 
| 
| 
|  | 
llvm-svn: 139921
 | 
| | 
| 
| 
|  | 
llvm-svn: 139909
 | 
| | 
| 
| 
|  | 
llvm-svn: 139906
 | 
| | 
| 
| 
|  | 
llvm-svn: 139904
 | 
| | 
| 
| 
|  | 
llvm-svn: 139903
 | 
| | 
| 
| 
|  | 
llvm-svn: 139902
 | 
| | 
| 
| 
|  | 
llvm-svn: 139892
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
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
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
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
 | 
| | 
| 
| 
|  | 
llvm-svn: 139877
 | 
| | 
| 
| 
| 
| 
|  | 
return, and the printer accept, an annotation string which can be passed through if the client cares about annotations.
llvm-svn: 139876
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
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
 | 
| | 
| 
| 
|  | 
llvm-svn: 139872
 | 
| | 
| 
| 
|  | 
llvm-svn: 139870
 | 
| | 
| 
| 
|  | 
llvm-svn: 139869
 | 
| | 
| 
| 
| 
| 
|  | 
Thumb1.
llvm-svn: 139865
 | 
| | 
| 
| 
| 
| 
| 
|  | 
time for describing high latency ones and for recognizting loads
from the same base pointer
llvm-svn: 139864
 | 
| | 
| 
| 
| 
| 
|  | 
unnecessary lookup.
llvm-svn: 139859
 | 
| | 
| 
| 
| 
| 
|  | 
Also add the AVX versions and add comments!
llvm-svn: 139854
 | 
| | 
| 
| 
|  | 
llvm-svn: 139851
 | 
| | 
| 
| 
|  | 
llvm-svn: 139848
 | 
| | 
| 
| 
|  | 
llvm-svn: 139846
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
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
 | 
| | 
| 
| 
|  | 
llvm-svn: 139843
 | 
| | 
| 
| 
|  | 
llvm-svn: 139842
 | 
| | 
| 
| 
|  | 
llvm-svn: 139839
 | 
| | 
| 
| 
| 
| 
|  | 
DIContext that provides line information when given an address.
llvm-svn: 139836
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
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
 | 
| | 
| 
| 
|  | 
llvm-svn: 139828
 | 
| | 
| 
| 
| 
| 
|  | 
should be a parameter to request verbose mode?
llvm-svn: 139821
 | 
| | 
| 
| 
| 
| 
|  | 
MC-based InstPrinters to print them out.  Enhance the ARM and X86 InstPrinter's to do so in verbose mode.
llvm-svn: 139820
 | 
| | 
| 
| 
| 
| 
|  | 
Fix the stats counters to reflect that.
llvm-svn: 139819
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
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
 | 
| | 
| 
| 
|  | 
llvm-svn: 139816
 | 
| | 
| 
| 
| 
| 
| 
|  | 
The number of spills could go negative since a folded COPY is just a
spill, and it may be eliminated.
llvm-svn: 139815
 | 
| | 
| 
| 
|  | 
llvm-svn: 139813
 | 
| | 
| 
| 
|  | 
llvm-svn: 139808
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
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
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
Adjust counters when removing spill and reload instructions.
We still don't account for reloads being removed by eliminateDeadDefs().
llvm-svn: 139806
 | 
| | 
| 
| 
|  | 
llvm-svn: 139799
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
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
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
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
 | 
| | 
| 
| 
|  | 
llvm-svn: 139796
 | 
| | 
| 
| 
|  | 
llvm-svn: 139794
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
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
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
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
 | 
| | 
| 
| 
|  | 
llvm-svn: 139786
 |