CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
31 lines
1.0 KiB
Plaintext
31 lines
1.0 KiB
Plaintext
From: Chris Lattner [mailto:sabre@nondot.org]
|
|
Sent: Wednesday, December 06, 2000 6:41 PM
|
|
To: Vikram S. Adve
|
|
Subject: Additional idea with respect to encoding
|
|
|
|
Here's another idea with respect to keeping the common case instruction
|
|
size down (less than 32 bits ideally):
|
|
|
|
Instead of encoding an instruction to operate on two register numbers,
|
|
have it operate on two negative offsets based on the current register
|
|
number. Therefore, instead of using:
|
|
|
|
r57 = add r55, r56 (r57 is the implicit dest register, of course)
|
|
|
|
We could use:
|
|
|
|
r57 = add -2, -1
|
|
|
|
My guess is that most SSA references are to recent values (especially if
|
|
they correspond to expressions like (x+y*z+p*q/ ...), so the negative
|
|
numbers would tend to stay small, even at the end of the procedure (where
|
|
the implicit register destination number could be quite large). Of course
|
|
the negative sign is reduntant, so you would be storing small integers
|
|
almost all of the time, and 5-6 bits worth of register number would be
|
|
plenty for most cases...
|
|
|
|
What do you think?
|
|
|
|
-Chris
|
|
|