diff options
author | Erik Verbruggen <erik.verbruggen@digia.com> | 2014-05-22 16:04:20 +0200 |
---|---|---|
committer | Erik Verbruggen <erik.verbruggen@digia.com> | 2014-06-19 11:41:51 +0200 |
commit | d757806537a1e7233bd656e4d2170cfa994d9d44 (patch) | |
tree | 40c371bb4ea15df663eed85a35c08bcacce61893 /src/qml/jit/qv4regalloc.cpp | |
parent | 7e1ad9e2bd625784579cbd74ee30aff18d7359d5 (diff) |
V4 JIT: add some documentation and literature references.
Change-Id: I67667b74672b94b951361bf2a446476edf44b826
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'src/qml/jit/qv4regalloc.cpp')
-rw-r--r-- | src/qml/jit/qv4regalloc.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/qml/jit/qv4regalloc.cpp b/src/qml/jit/qv4regalloc.cpp index 2a3a1cd1bc..cb24db36b9 100644 --- a/src/qml/jit/qv4regalloc.cpp +++ b/src/qml/jit/qv4regalloc.cpp @@ -1272,6 +1272,8 @@ LifeTimeInterval *RegisterAllocator::cloneFixedInterval(int reg, bool isFP, cons return lti; } +// Creates the intervals with fixed ranges. See [Wimmer2]. Note that this only applies to callee- +// saved registers. void RegisterAllocator::prepareRanges() { LifeTimeInterval ltiWithCalls = createFixedInterval(_info->calls().size()); @@ -1779,3 +1781,13 @@ void RegisterAllocator::dump(IR::Function *function) const printer.print(function); } + +// References: +// [Wimmer1] C. Wimmer and M. Franz. Linear Scan Register Allocation on SSA Form. In Proceedings of +// CGO’10, ACM Press, 2010 +// [Wimmer2] C. Wimmer and H. Mossenbock. Optimized Interval Splitting in a Linear Scan Register +// Allocator. In Proceedings of the ACM/USENIX International Conference on Virtual +// Execution Environments, pages 132–141. ACM Press, 2005. +// [Traub] Omri Traub, Glenn Holloway, and Michael D. Smith. Quality and Speed in Linear-scan +// Register Allocation. In Proceedings of the ACM SIGPLAN 1998 Conference on Programming +// Language Design and Implementation, pages 142–151, June 1998. |