Statistics
| Branch: | Revision:

root / tcg @ fbeaa26c

Name Size
  arm
  hppa
  i386
  ia64
  mips
  ppc
  ppc64
  s390
  sparc
  tci
LICENSE 146 Bytes
README 14.9 kB
TODO 394 Bytes
optimize.c 21.6 kB
tcg-op.h 78.1 kB
tcg-opc.h 9.5 kB
tcg-runtime.h 706 Bytes
tcg.c 76 kB
tcg.h 17.5 kB

Latest revisions

# Date Author Comment
fbeaa26c 09/11/2012 07:06 pm Aurelien Jarno

tcg/optimize: add constant folding for brcond

Reviewed-by: Richard Henderson <>
Signed-off-by: Aurelien Jarno <>

f8dd19e5 09/11/2012 07:06 pm Aurelien Jarno

tcg/optimize: add constant folding for setcond

Reviewed-by: Richard Henderson <>
Signed-off-by: Aurelien Jarno <>

65a7cce1 09/11/2012 07:05 pm Aurelien Jarno

tcg/optimize: swap brcond/setcond arguments when possible

brcond and setcond ops are not commutative, but it's easy to compute the
new condition after swapping the arguments. Try to always put the constant
argument in second position like for commutative ops, to help backends to...

01ee5282 09/11/2012 07:05 pm Aurelien Jarno

tcg/optimize: simplify shift/rot r, 0, a => movi r, 0 cases

shift/rot r, 0, a is equivalent to movi r, 0.

Reviewed-by: Richard Henderson <>
Signed-off-by: Aurelien Jarno <>

61251c0c 09/11/2012 07:05 pm Aurelien Jarno

tcg/optimize: simplify and r, a, 0 cases

and r, a, 0 is equivalent to a movi r, 0.

Reviewed-by: Richard Henderson <>
Signed-off-by: Aurelien Jarno <>

38ee188b 09/11/2012 07:05 pm Aurelien Jarno

tcg/optimize: simplify or/xor r, a, 0 cases

or/xor r, a, 0 is equivalent to a mov r, a.

Reviewed-by: Richard Henderson <>
Signed-off-by: Aurelien Jarno <>

56e49438 09/11/2012 07:05 pm Aurelien Jarno

tcg/optimize: split expression simplification

Split expression simplification in multiple parts so that a given op
can appear multiple times. This patch should not change anything.

Reviewed-by: Richard Henderson <>
Signed-off-by: Aurelien Jarno <>

c5cc28ff 09/11/2012 07:05 pm Aurelien Jarno

tcg: improve profiler

Now that there are two passes of optimization (optimize.c, liveness)
there is no point of outputing the statistics of the liveness part
only. Update the code to take into account both optimizations.

Reviewed-by: Richard Henderson <>...

6845df48 09/10/2012 02:38 pm Aurelien Jarno

tcg/s390: fix ld/st with CONFIG_TCG_PASS_AREG0

The load/store slow path has been broken in e141ab52d:
- We need to move 4 registers for store functions and 3 registers for
load functions and not the reverse.
- According to the s390x calling convention the arguments of a function...

18fec301 08/28/2012 09:38 pm Aurelien Jarno

tcg/mips: fix broken CONFIG_TCG_PASS_AREG0 code

The CONFIG_TCG_PASS_AREG0 code for calling ld/st helpers was
broken in that it did not respect the ABI requirement that 64
bit values were passed in even-odd register pairs. The simplest
way to fix this is to implement some new utility functions...

View revisions

Also available in: Atom