Joel Dice
|
a1fc8a4dac
|
add site to result in MemoryEvent::compile regardless of whether the result is live, since the memory location may be used as the target of a move and we need to keep the reference count of the base and index registers nonzero
|
2009-02-08 19:08:56 -07:00 |
|
Joel Dice
|
29616c4abc
|
freeze target site when using temporary in maybeMove
|
2009-02-08 18:58:33 -07:00 |
|
Joel Dice
|
4ca45ffa41
|
fix two bugs concerning tracking available registers and reserving them when necessary
|
2009-02-08 16:20:28 -07:00 |
|
Joel Dice
|
0fbe89c147
|
set Value::high when appropriate in MyCompiler::initLocalsFromLogicalIp
|
2009-02-08 15:13:49 -07:00 |
|
Joel Dice
|
175ec1ff48
|
remove debug logging
|
2009-02-08 13:22:28 -07:00 |
|
Joel Dice
|
5066bfdabf
|
tweak register and frame site allocation code to avoid failure in corner cases
|
2009-02-08 13:21:35 -07:00 |
|
Joel Dice
|
55d2ee1823
|
avoid clobbering values in sign-extension case of MoveEvent.compile
|
2009-02-02 19:13:02 -07:00 |
|
Joel Dice
|
6297c8a906
|
add tests to Arrays.java and Longs.java
|
2009-02-02 19:12:07 -07:00 |
|
Joel Dice
|
123e22322c
|
turn off debug logging
|
2009-02-01 16:21:55 -07:00 |
|
Joel Dice
|
2e3fd111d4
|
fix regressions on x86_64
|
2009-02-01 16:19:11 -07:00 |
|
Joel Dice
|
8b1801c465
|
various bugfixes involving multiword values
|
2009-02-01 16:10:56 -07:00 |
|
Joel Dice
|
d0676d0303
|
add *~ to .gitignore
|
2009-02-01 16:10:00 -07:00 |
|
Joel Dice
|
11408dc2cd
|
fix popIndex calculation in CallEvent ctor
|
2009-01-31 12:35:45 -07:00 |
|
Joel Dice
|
8b6319fbc8
|
assume stack grows towards negative addresses when loading and storing multiword locals
|
2009-01-31 12:05:06 -07:00 |
|
Joel Dice
|
a11d018dc2
|
fix assertion in MyCompiler::peek
|
2009-01-29 18:43:46 -07:00 |
|
Joel Dice
|
8dca14af74
|
remove obsolete assertion from negateRR
|
2009-01-29 18:43:18 -07:00 |
|
Joel Dice
|
1c3504b62a
|
fix various stack bugs
|
2009-01-29 18:36:19 -07:00 |
|
Joel Dice
|
565ece136b
|
begin refactoring compiler.cpp to treat each word of a multiword value seperately
|
2009-01-25 15:03:38 -07:00 |
|
Joel Dice
|
034444db57
|
fix a couple of bugs handling multi-word values
|
2009-01-12 09:26:43 -07:00 |
|
Joel Dice
|
582e975a8a
|
remove temporary debug code
|
2009-01-11 16:46:36 -07:00 |
|
Joel Dice
|
85ac9b9c71
|
revert overflow code in sitesToString since we now prune dead buddies from values
|
2009-01-11 16:46:22 -07:00 |
|
Joel Dice
|
05bd86e2ed
|
use upper 32 bits of mask in pickRegisterTarget when picking register for high word; set Target::Impossible to 5 since 4 is a valid cost
|
2009-01-11 16:42:41 -07:00 |
|
Joel Dice
|
04bc58fd95
|
reorder code in MemorySite::release so we can use low->size before it is overwritten
|
2009-01-11 16:24:25 -07:00 |
|
Joel Dice
|
5a76277b84
|
remove dead buddies from values so they don't accumulate without bound; when resolving sites, avoid picking those which belong to other values; various bugfixes
|
2009-01-11 15:53:51 -07:00 |
|
Joel Dice
|
e3976e66d3
|
avoid using all registers when marshalling sites, since we need at least one register free for memory-to-memory moves; various bugfixes
|
2009-01-11 11:48:02 -07:00 |
|
Joel Dice
|
8459489212
|
avoid overflow in sitesToString
|
2009-01-04 15:58:05 -07:00 |
|
Joel Dice
|
9495d03dc6
|
explicitly load jump target in tableswitch to avoid retaining stale memory sites
|
2009-01-04 15:56:47 -07:00 |
|
Joel Dice
|
c56f37197c
|
marshal values at branches to avoid duplication of effort at junctions
|
2009-01-04 14:52:46 -07:00 |
|
Joel Dice
|
f4689093ee
|
try harder to find an acceptable source site in resolveSourceJunctionSites
|
2009-01-04 13:35:09 -07:00 |
|
Joel Dice
|
ce1e161f52
|
allocate larger buffer for sitesToString
|
2009-01-04 12:38:31 -07:00 |
|
Joel Dice
|
095e6d7bc3
|
prefer unowned resources in resourceCost
|
2009-01-04 12:34:38 -07:00 |
|
Joel Dice
|
d76b4121ae
|
fix 64-bit constant case in addCR and subtractCR
|
2009-01-04 12:32:11 -07:00 |
|
Joel Dice
|
ded2ffe437
|
more compile.cpp refactoring
|
2009-01-03 18:17:51 -07:00 |
|
Joel Dice
|
ae24a6c18e
|
continue refactoring compiler.cpp to simplify register and frame resource allocation
|
2009-01-03 14:34:45 -07:00 |
|
Joel Dice
|
7b546936d6
|
snapshot
|
2009-01-02 17:44:47 -07:00 |
|
Joel Dice
|
c678fb30a4
|
snapshot
|
2008-12-24 13:35:43 -07:00 |
|
Joel Dice
|
f96ee3ea73
|
handle p->value->reads == 0 case in visit
|
2008-12-22 18:25:00 -07:00 |
|
Joel Dice
|
897586aa76
|
clobber overlapping locals in storeLocal; move fallback code in trySteal to increase its applicability
|
2008-12-22 17:55:29 -07:00 |
|
Joel Dice
|
ac37941fa5
|
fix build error in previous commit
|
2008-12-21 18:14:24 -07:00 |
|
Joel Dice
|
c9bec0ce96
|
only steal sites recursively when all else fails in trySteal
|
2008-12-21 18:14:20 -07:00 |
|
Joel Dice
|
c78e76c747
|
temporarily reacquire source in releaseRegister
This avoids a SEGV when freezing the register.
|
2008-12-21 14:48:26 -07:00 |
|
Joel Dice
|
055ec4dd9f
|
various fixes and cleanups concerning 64-bit values on 32-bit systems
|
2008-12-21 14:41:56 -07:00 |
|
Joel Dice
|
b23f7374e9
|
don't steal sites in pickJunctionSite
|
2008-12-20 17:45:52 -07:00 |
|
Joel Dice
|
b9b7ae4003
|
avoid clobbering first operand in CombineEvent.compile
|
2008-12-20 16:05:01 -07:00 |
|
Joel Dice
|
cf4e8e7ec2
|
various fixes for marshalling values among registers and frame sites
|
2008-12-20 14:55:45 -07:00 |
|
Joel Dice
|
75b3bf98ab
|
pick only unfrozen frame sites in save
|
2008-12-20 11:13:58 -07:00 |
|
Joel Dice
|
a40ae85588
|
clear sites from dead value in removeBuddy
|
2008-12-15 18:21:01 -07:00 |
|
Joel Dice
|
8819d01522
|
only set Context::forfeitedSite if value is live
|
2008-12-15 17:42:32 -07:00 |
|
Joel Dice
|
39358e6652
|
update junction read based on liveness of local value on first visit to junction, not stub read value
|
2008-12-15 07:35:19 -07:00 |
|
Joel Dice
|
7f4bd51464
|
don't use trySteal when moving sites between buddies
|
2008-12-13 13:54:26 -07:00 |
|