summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2011-02-03 00:54:23 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2011-02-03 00:54:23 +0000
commitdca2917e253512b9308d9dc30d9216e2e85510fe (patch)
tree5f353daa4d93ce8e1fd316220d76bc015f3120c8 /lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp
parent769302a97fd58caaeb31ec5e26f9f3030d01c0f2 (diff)
downloadbcm5719-llvm-dca2917e253512b9308d9dc30d9216e2e85510fe.tar.gz
bcm5719-llvm-dca2917e253512b9308d9dc30d9216e2e85510fe.zip
Defer SplitKit value mapping until all defs are available.
The greedy register allocator revealed some problems with the value mapping in SplitKit. We would sometimes start mapping values before all defs were known, and that could change a value from a simple 1-1 mapping to a multi-def mapping that requires ssa update. The new approach collects all defs and register assignments first without filling in any live intervals. Only when finish() is called, do we compute liveness and mapped values. At this time we know with certainty which values map to multiple values in a split range. This also has the advantage that we can compute live ranges based on the remaining uses after rematerializing at split points. The current implementation has many opportunities for compile time optimization. llvm-svn: 124765
Diffstat (limited to 'lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud