Go to file
Mike Klein d272110d71 update alloc_tmp() to allocate blocks of N regs
We now search for a block of N adjacent registers that minimizes the
number of spills, where unspillable registers are counted as if
infinitely expensive.

On arm64, store64 now uses alloc_tmp(2) and st2.4s, and similarly
store128 uses alloc_tmp(4) and st4.4s.

For the purposes of arm64 instructions we could allow the block to wrap
around the register file mod 32, but I figured that probably wasn't
necessary and might be confusing to follow.  If we're right on the edge
some day we could circle back.

I'm not sure yet if our register-pair use cases on x86-64 will ever care
that the registers are adjacent, but it doesn't hurt to start that way.

This should behave pretty much the same when N=1 except that we're not
doing any interesting tie-breaking when all registers are occupied.  I
left a TODO, but I bet we'll never feel the need to follow up on it.

Change-Id: Ibbdd42858a6daf61401c638435617bfb37d1899c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/357300
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2021-01-22 19:54:08 +00:00
animations first cut at a checkbox 2009-10-21 19:41:10 +00:00
bazel bazel baby steps 2020-09-14 15:18:32 +00:00
bench SkSL: Remove ByteCode interpreter, generator, etc. 2021-01-22 14:38:41 +00:00
bin pull arm64 binary on arm64 Mac/Linux 2021-01-15 19:00:46 +00:00
build/fuchsia [fuchsia] Fix fidlc command. 2020-06-10 03:29:24 +00:00
build_overrides Port to ANGLE's GN files 2020-09-11 15:22:34 +00:00
client_utils/android Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
demos.skia.org [canvaskit] Remove Sk from nearly all function/type names. 2020-10-07 21:01:32 +00:00
dm Simplify common case for recttorect 2021-01-15 18:37:46 +00:00
docker [docker] Fix build by pointing to correct path 2021-01-22 17:34:56 +00:00
docs/examples Simplify common case for recttorect 2021-01-15 18:37:46 +00:00
example Reland "Remove use of legacy display globals." 2020-10-05 19:13:58 +00:00
experimental SkSL: Remove ByteCode interpreter, generator, etc. 2021-01-22 14:38:41 +00:00
fuzz More hiding of legacy drawImage calls 2021-01-22 13:53:42 +00:00
gm Revert "Revert "Reland "asyncRescaleAndRead supports unpremul results on GPU""" 2021-01-22 14:21:01 +00:00
gn Migrate SkSL test inputs to the resources/ directory. 2021-01-22 18:57:29 +00:00
include More hiding of legacy drawImage calls 2021-01-22 13:53:42 +00:00
infra Revert "Revert "Reland "asyncRescaleAndRead supports unpremul results on GPU""" 2021-01-22 14:21:01 +00:00
modules SkSL: Remove ByteCode interpreter, generator, etc. 2021-01-22 14:38:41 +00:00
platform_tools [SkottieView] handle calls to setSource after first animation initialization 2021-01-21 23:41:28 +00:00
resources Migrate SkSL test inputs to the resources/ directory. 2021-01-22 18:57:29 +00:00
samplecode More hiding of legacy drawImage calls 2021-01-22 13:53:42 +00:00
site Enforce ES2 limits on indexing expressions (in runtime effects) 2021-01-15 22:49:27 +00:00
specs Fix CanvasKit generated documentation to work with emscripten 1.39.16. 2020-05-27 12:23:32 +00:00
src update alloc_tmp() to allocate blocks of N regs 2021-01-22 19:54:08 +00:00
tests Migrate SkSL test inputs to the resources/ directory. 2021-01-22 18:57:29 +00:00
third_party roll gn to latest 2021-01-15 15:34:00 +00:00
tools Revert "Revert "Reland "asyncRescaleAndRead supports unpremul results on GPU""" 2021-01-22 14:21:01 +00:00
.bazelignore bazel baby steps 2020-09-14 15:18:32 +00:00
.clang-format Disable BinPackParameters in .clang-format 2020-03-27 14:32:40 +00:00
.clang-tidy Disable ClangTidy namespace comments for short blocks. 2020-08-24 14:01:22 +00:00
.gitignore bazel baby steps 2020-09-14 15:18:32 +00:00
.gn Pre-emptive fix for upcoming ANGLE change. 2021-01-08 17:23:52 +00:00
AUTHORS Fix issues with latest GN 2020-11-07 13:55:45 +00:00
BUILD.bazel bazel baby steps 2020-09-14 15:18:32 +00:00
BUILD.gn Migrate SkSL test inputs to the resources/ directory. 2021-01-22 18:57:29 +00:00
codereview.settings Make uploading to Gerrit the default for Skia 2016-11-09 19:07:56 +00:00
CONTRIBUTING Fix references to https://sites.google.com/site/skiadocs/. 2015-02-03 13:12:54 -02:00
CQ_COMMITTERS Moved committer list to chrome-infra-auth and deleted it from the repo 2015-09-02 13:37:54 -07:00
DEPS Roll Chromium from dac687f4cbf2 to 465f56090c50 (418 revisions) 2021-01-22 06:05:00 +00:00
go.mod Update go.skia.org/infra in go.mod/go.sum 2020-12-21 20:31:07 +00:00
go.sum Update go.skia.org/infra in go.mod/go.sum 2020-12-21 20:31:07 +00:00
LICENSE LICENSE file: clean up 2019-11-22 21:59:03 +00:00
OWNERS add OWNERS file 2017-12-01 19:50:19 +00:00
PRESUBMIT.py Add presubmit check for git conflict markers 2020-12-16 17:51:16 +00:00
public.bzl [canvaskit] Remove custom_embedded_factory from G3 build 2020-12-23 12:59:36 +00:00
README Fix references to https://sites.google.com/site/skiadocs/. 2015-02-03 13:12:54 -02:00
README.chromium Update README.chromium. 2015-06-11 13:19:24 -07:00
RELEASE_NOTES.txt Deprecate (and ignore) SkAndroidCodec::ExifOrientation 2021-01-15 23:08:46 +00:00
whitespace.txt Whitespace change to re-trigger Mac/iOS tests 2020-02-23 20:55:01 +00:00
WORKSPACE.bazel bazel baby steps 2020-09-14 15:18:32 +00:00

Skia is a complete 2D graphic library for drawing Text, Geometries, and Images.

See full details, and build instructions, at https://skia.org.