adding Irix (and, to a lesser extent, Solaris) userland emulation to QEMU
Go to file
Aurelien Jarno a17f24e08d tcg/optimize: rework copy progagation
The copy propagation pass tries to keep track what is a copy of what
and what has copy of what, and in addition it keep a circular list of
of all the copies. Unfortunately this doesn't fully work: a mov from
a temp which has a state "COPY" changed it into a state "HAS_COPY".
Later when this temp is used again, it is considered has not having
copy and thus no propagation is done.

This patch fixes that by removing the hiearchy between copies, and thus
only keeping a "COPY" state both meaning "is a copy" and "has a copy".
The decision of which copy to use is deferred to the actual temp
replacement. At this stage there is not one best choice to do, but only
better choices than others. For doing the best choice the operation
would have to be parsed in reversed to know if a temp is going to be
used later or not. That what is done by the liveness analysis. At this
stage it is known that globals will be always live, that local temps
will be dead at the end of the translation block, and that the temps
will be dead at the end of the basic block. This means that this stage
should try to replace temps by local temps or globals and local temps
by globals.

Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2012-10-09 01:42:09 -05:00
QMP qmp: add SUSPEND_DISK event 2012-08-13 16:10:18 -03:00
audio audio/winwave: previous audio buffer should be flushed 2012-08-28 19:11:28 +04:00
block Merge remote-tracking branch 'kwolf/for-anthony' into staging 2012-08-31 10:04:18 -05:00
bsd-user
default-configs arm: Move some ARM devices into libhw 2012-08-13 16:13:02 +01:00
docs docs: Fix spelling (propery -> property) 2012-08-15 15:18:54 +01:00
fpu
fsdev
gdb-xml
hw Remove unused CONFIG_TCG_PASS_AREG0 and dead code 2012-10-09 01:42:08 -05:00
include/qemu Merge remote-tracking branch 'quintela/migration-next-20120808' into staging 2012-08-13 16:02:11 -05:00
libcacard
linux-headers linux-headers: update to 3.6-rc3 2012-08-29 10:51:28 -05:00
linux-user linux-user: Clarify "Unable to reserve guest address space" error 2012-08-27 10:18:01 +03:00
net qapi: avoid reserved keywords 2012-08-09 18:34:57 +00:00
pc-bios Update OpenBIOS PPC image 2012-08-28 20:38:39 +02:00
qapi qapi: Fix memory leak 2012-08-20 11:05:08 -03:00
qga
qom qom: object_delete should unparent the object first 2012-08-23 20:19:59 -05:00
roms Update OpenBIOS PPC image 2012-08-28 20:38:39 +02:00
scripts Merge remote-tracking branch 'stefanha/trivial-patches' into staging 2012-08-15 13:25:54 -05:00
slirp
sysconfigs/target
target-alpha target-alpha: Use movcond 2012-10-09 01:42:08 -05:00
target-arm target-arm: final conversion to AREG0 free mode 2012-10-09 01:42:07 -05:00
target-cris target-cris: Switch to AREG0 free mode 2012-10-09 01:42:08 -05:00
target-i386 w32: Fix broken build 2012-08-30 16:36:21 -05:00
target-lm32 target-lm32: switch to AREG0 free mode 2012-10-09 01:42:07 -05:00
target-m68k Remove unused CONFIG_TCG_PASS_AREG0 and dead code 2012-10-09 01:42:08 -05:00
target-microblaze target-microblaze: switch to AREG0 free mode 2012-10-09 01:42:07 -05:00
target-mips target-mips: Always evaluate debugging macro arguments 2012-10-09 01:42:08 -05:00
target-openrisc
target-ppc target-ppc: fix altivec instructions 2012-08-28 18:49:22 +02:00
target-s390x target-s390x: avoid cpu_single_env 2012-10-09 01:42:07 -05:00
target-sh4 target-sh4: switch to AREG0 free mode 2012-10-09 01:42:08 -05:00
target-sparc Remove unused CONFIG_TCG_PASS_AREG0 and dead code 2012-10-09 01:42:08 -05:00
target-unicore32 target-unicore32: switch to AREG0 free mode 2012-10-09 01:42:07 -05:00
target-xtensa target-xtensa: don't emit extra tcg_gen_goto_tb 2012-10-09 01:42:08 -05:00
tcg tcg/optimize: rework copy progagation 2012-10-09 01:42:09 -05:00
tests qemu-iotests: add backing file smaller than image test case 2012-08-29 15:23:35 +02:00
trace trace/simple: Replace asprintf by g_strdup_printf 2012-08-14 13:19:57 +01:00
ui net: inet_connect(), inet_connect_opts(): add in_progress argument 2012-08-13 13:20:34 -03:00
.gitignore
.gitmodules
.mailmap
CODING_STYLE
COPYING
COPYING.LIB
Changelog
HACKING
LICENSE
MAINTAINERS MAINTAINERS: Update email address for Stefan Hajnoczi 2012-08-14 07:34:01 -05:00
Makefile Merge remote-tracking branch 'stefanha/trivial-patches' into staging 2012-08-15 13:25:54 -05:00
Makefile.dis
Makefile.hw
Makefile.objs Adding support for libseccomp in configure and Makefile (v8) 2012-08-16 13:41:16 -05:00
Makefile.target Remove unused CONFIG_TCG_PASS_AREG0 and dead code 2012-10-09 01:42:08 -05:00
Makefile.user
README
TODO
VERSION Update version for 1.2.0 2012-09-05 07:50:01 -05:00
a.out.h
acl.c
acl.h
aes.c
aes.h
aio.c
alpha-dis.c
alpha.ld
arch_init.c qapi: add 'query-target' command to return target arch 2012-08-22 10:47:17 -05:00
arch_init.h win32: provide separate macros for weak decls and definitions 2012-08-15 13:26:03 -05:00
arm-dis.c
arm.ld
async.c
balloon.c
balloon.h
bitmap.c
bitmap.h
bitops.c
bitops.h
block-migration.c
block-migration.h
block.c block: Flush parent to OS with cache=unsafe 2012-08-15 15:14:43 +02:00
block.h block: add BLOCK_O_CHECK for qemu-img check 2012-08-10 10:25:12 +02:00
block_int.h block: block_int: include qerror.h 2012-08-13 13:20:50 -03:00
blockdev.c blockdev: flip default cache mode from writethrough to writeback 2012-08-10 10:25:12 +02:00
blockdev.h
bswap.h
bt-host.c
bt-host.h
bt-vhci.c
buffered_file.c
buffered_file.h
cache-utils.c
cache-utils.h
cmd.c
cmd.h
compatfd.c
compatfd.h
compiler.h win32: provide separate macros for weak decls and definitions 2012-08-15 13:26:03 -05:00
config.h
configure Remove unused CONFIG_TCG_PASS_AREG0 and dead code 2012-10-09 01:42:08 -05:00
console.c console: bounds check whenever changing the cursor due to an escape code 2012-09-04 10:26:17 -05:00
console.h
coroutine-gthread.c
coroutine-sigaltstack.c
coroutine-ucontext.c
coroutine-win32.c
cpu-all.h Remove unused CONFIG_TCG_PASS_AREG0 and dead code 2012-10-09 01:42:08 -05:00
cpu-common.h
cpu-defs.h
cpu-exec.c Revert "i8259: add -no-spurious-interrupt-hack option" 2012-08-27 18:33:12 +04:00
cpus.c
cpus.h
cputlb.c Remove unused CONFIG_TCG_PASS_AREG0 and dead code 2012-10-09 01:42:08 -05:00
cputlb.h
cris-dis.c
cursor.c
cursor_hidden.xpm
cursor_left_ptr.xpm
cutils.c block: Enable qemu_open/close to work with fd sets 2012-08-15 13:16:22 +02:00
def-helper.h
device_tree.c
device_tree.h
dis-asm.h
disas.c
disas.h
dma-helpers.c dma: Fix stupid typo/thinko 2012-08-16 13:41:16 -05:00
dma.h
dump-stub.c
dump.c
dump.h
elf.h
envlist.c
envlist.h
error.c error, qerror: drop QDict member 2012-08-13 14:17:53 -03:00
error.h error, qerror: pass desc string to error calls 2012-08-13 14:17:53 -03:00
event_notifier.c
event_notifier.h
exec-all.h Remove unused CONFIG_TCG_PASS_AREG0 and dead code 2012-10-09 01:42:08 -05:00
exec-memory.h
exec-obsolete.h
exec.c memory: add -machine dump-guest-core=on|off 2012-08-16 13:41:15 -05:00
gdbstub.c gdbstub/sh4: fix build with USE_SOFTFLOAT_STRUCT_TYPES 2012-10-09 01:42:09 -05:00
gdbstub.h
gen-icount.h
hmp-commands.hx
hmp.c migration: move total_time from ram stats to migration info 2012-08-21 15:06:24 -03:00
hmp.h Merge remote-tracking branch 'qmp/queue/qmp' into staging 2012-08-13 16:12:35 -05:00
host-utils.c
host-utils.h
hppa-dis.c
hppa.ld
i386-dis.c
i386.ld
ia64-dis.c
ia64.ld
input.c
int128.h
iohandler.c eventfd: making it thread safe 2012-08-21 15:16:29 -05:00
ioport.c
ioport.h
iorange.h
iov.c iov_send_recv(): Handle zero bytes case even if OS does not 2012-08-15 15:21:33 +01:00
iov.h
json-lexer.c
json-lexer.h
json-parser.c json-parser: don't replicate tokens at each level of recursion 2012-08-16 13:41:15 -05:00
json-parser.h
json-streamer.c
json-streamer.h
kvm-all.c
kvm-stub.c
kvm.h
libfdt_env.h
linux-aio.c
lm32-dis.c
m68k-dis.c
m68k.ld
main-loop.c
main-loop.h
memory.c memory: Fix copy&paste mistake in memory_region_iorange_write 2012-08-29 08:25:37 -05:00
memory.h
memory_mapping-stub.c
memory_mapping.c
memory_mapping.h
microblaze-dis.c
migration-exec.c
migration-fd.c
migration-tcp.c migration: don't rely on any QERR_SOCKET_* 2012-08-13 13:20:39 -03:00
migration-unix.c
migration.c migration: move total_time from ram stats to migration info 2012-08-21 15:06:24 -03:00
migration.h
mips-dis.c
mips.ld
module.c
module.h
monitor.c monitor: don't try to initialize json parser when monitor is HMP 2012-08-23 20:19:59 -05:00
monitor.h block: Enable qemu_open/close to work with fd sets 2012-08-15 13:16:22 +02:00
nbd.c net: inet_connect(), inet_connect_opts(): add in_progress argument 2012-08-13 13:20:34 -03:00
nbd.h
net.c
net.h
notify.c
notify.h
os-posix.c
os-win32.c
osdep.c osdep: Fix compilation failure on BSD systems 2012-08-16 13:41:16 -05:00
osdep.h memory: add -machine dump-guest-core=on|off 2012-08-16 13:41:15 -05:00
oslib-posix.c
oslib-win32.c
page_cache.c
path.c
pci-ids.txt
pflib.c
pflib.h
poison.h
posix-aio-compat.c
ppc-dis.c
ppc.ld
ppc64.ld
qapi-schema-guest.json
qapi-schema-test.json
qapi-schema.json Merge remote-tracking branch 'qmp/queue/qmp' into staging 2012-08-22 13:33:15 -05:00
qbool.c
qbool.h
qdict-test-data.txt
qdict.c
qdict.h
qemu-aio.h
qemu-barrier.h
qemu-bridge-helper.c
qemu-char.c qemu-char: (Re-)connect for tcp_chr_write() unconnected writing 2012-08-16 13:41:38 -05:00
qemu-char.h
qemu-common.h block: Enable qemu_open/close to work with fd sets 2012-08-15 13:16:22 +02:00
qemu-config.c Command line support for seccomp with -sandbox (v8) 2012-08-16 13:41:16 -05:00
qemu-config.h Command line support for seccomp with -sandbox (v8) 2012-08-16 13:41:16 -05:00
qemu-coroutine-int.h
qemu-coroutine-io.c
qemu-coroutine-lock.c
qemu-coroutine-sleep.c
qemu-coroutine.c
qemu-coroutine.h
qemu-doc.texi
qemu-error.c
qemu-error.h
qemu-file.h
qemu-ga.c qemu-ga: Fix null pointer passed to unlink in failure branch 2012-08-29 08:25:55 -05:00
qemu-img-cmds.hx
qemu-img.c block: add BLOCK_O_CHECK for qemu-img check 2012-08-10 10:25:12 +02:00
qemu-img.texi Documentation: Warn against qemu-img on active image 2012-08-17 21:29:15 +02:00
qemu-io.c
qemu-lock.h
qemu-log.c
qemu-log.h
qemu-nbd.c
qemu-nbd.texi
qemu-objects.h
qemu-option-internal.h
qemu-option.c
qemu-option.h
qemu-options-wrapper.h
qemu-options.h
qemu-options.hx Revert "qemu-options.hx: mention retrace= VGA option" 2012-08-27 18:33:21 +04:00
qemu-os-posix.h
qemu-os-win32.h
qemu-progress.c
qemu-queue.h
qemu-seccomp.c Adding qemu-seccomp.[ch] (v8) 2012-08-16 13:41:16 -05:00
qemu-seccomp.h Adding qemu-seccomp.[ch] (v8) 2012-08-16 13:41:16 -05:00
qemu-sockets.c migration: don't rely on any QERR_SOCKET_* 2012-08-13 13:20:39 -03:00
qemu-tech.texi
qemu-thread-posix.c
qemu-thread-posix.h
qemu-thread-win32.c
qemu-thread-win32.h
qemu-thread.h
qemu-timer-common.c
qemu-timer.c qemu-timer: properly arm alarm timer for timers set by device initialization 2012-09-04 12:30:28 +02:00
qemu-timer.h
qemu-tls.h
qemu-tool.c block: Enable qemu_open/close to work with fd sets 2012-08-15 13:16:22 +02:00
qemu-user.c block: Enable qemu_open/close to work with fd sets 2012-08-15 13:16:22 +02:00
qemu-x509.h
qemu-xattr.h
qemu.sasl
qemu_socket.h net: inet_connect(), inet_connect_opts(): add in_progress argument 2012-08-13 13:20:34 -03:00
qerror.c error, qerror: drop QDict member 2012-08-13 14:17:53 -03:00
qerror.h error, qerror: drop QDict member 2012-08-13 14:17:53 -03:00
qfloat.c
qfloat.h
qint.c
qint.h
qjson.c
qjson.h
qlist.c qlist: add qlist_size() 2012-08-16 13:41:15 -05:00
qlist.h qlist: add qlist_size() 2012-08-16 13:41:15 -05:00
qmp-commands.hx Merge remote-tracking branch 'qmp/queue/qmp' into staging 2012-08-22 13:33:15 -05:00
qmp.c win32: provide separate macros for weak decls and definitions 2012-08-15 13:26:03 -05:00
qobject.h
qstring.c
qstring.h
qtest.c
qtest.h
range.h
readline.c
readline.h
rules.mak Support using a different compiler for Objective-C files 2012-08-16 13:41:15 -05:00
s390-dis.c
s390.ld
savevm.c Merge remote-tracking branch 'agraf/ppc-for-upstream' into staging 2012-08-15 14:59:21 -05:00
sh4-dis.c
softmmu-semi.h softmmu-semi: fix lock_user* functions not to deref NULL upon OOM 2012-08-22 10:47:14 -05:00
softmmu_defs.h Remove unused CONFIG_TCG_PASS_AREG0 and dead code 2012-10-09 01:42:08 -05:00
softmmu_exec.h
softmmu_header.h Remove unused CONFIG_TCG_PASS_AREG0 and dead code 2012-10-09 01:42:08 -05:00
softmmu_template.h Remove unused CONFIG_TCG_PASS_AREG0 and dead code 2012-10-09 01:42:08 -05:00
sparc-dis.c
sparc.ld
sparc64.ld
spice-qemu-char.c
sysemu.h Revert "i8259: add -no-spurious-interrupt-hack option" 2012-08-27 18:33:12 +04:00
targphys.h
tcg-runtime.c
tci-dis.c
tci.c Remove unused CONFIG_TCG_PASS_AREG0 and dead code 2012-10-09 01:42:08 -05:00
thunk.c
thunk.h
trace-events pseries: Add PCI MSI/MSI-X support 2012-08-15 19:43:16 +02:00
translate-all.c
uboot_image.h
user-exec.c Remove unused CONFIG_TCG_PASS_AREG0 and dead code 2012-10-09 01:42:08 -05:00
version.rc
vgafont.h
vl.c Revert "vl: fix -hdachs/-hda argument order parsing issues" 2012-08-27 18:33:22 +04:00
vmstate.h
x86_64.ld
xen-all.c xen-all.c: fix multiply issue for int and uint types 2012-08-22 10:17:43 +00:00
xen-mapcache.c Fix invalidate if memory requested was not bucket aligned 2012-08-22 10:17:04 +00:00
xen-mapcache.h
xen-stub.c

README

Read the documentation in qemu-doc.html or on http://wiki.qemu.org

- QEMU team