Matt Arsenault 84489b34f6 AMDGPU: Handle frame index expansion with no free SGPRs pre gfx9
Since an add instruction must produce an unused carry out, this
requires additional SGPRs. This can be avoided by keeping the entire
offset computation in SGPRs. If one SGPR is still available, this only
costs one extra mov. If none are available, the entire computation can
be done in place and reversed.

This does assume the use is a VGPR operand. This was already assumed,
and we currently only select frame indexes to VALU instructions. This
should probably be fixed at some point to handle more possible MIR.

llvm-svn: 370929
2019-09-04 17:12:57 +00:00
..
2019-07-11 21:19:33 +00:00
2019-06-20 15:08:34 +00:00
2019-06-20 15:08:34 +00:00
2019-05-08 22:09:57 +00:00
2019-06-20 15:08:34 +00:00
2019-03-29 17:35:56 +00:00
2017-08-07 18:30:35 +00:00
2019-09-02 10:02:54 +00:00
2017-08-07 18:30:35 +00:00
2019-05-13 19:30:06 +00:00
2019-06-14 00:33:31 +00:00
2019-03-19 15:50:24 +00:00
2018-04-30 19:08:16 +00:00
2019-07-01 17:17:45 +00:00
2019-03-21 12:01:21 +00:00
2019-07-09 18:10:06 +00:00
2019-06-20 16:29:40 +00:00
2019-07-11 10:37:58 +00:00
2019-07-08 19:03:38 +00:00
2019-03-12 21:02:54 +00:00
2019-03-12 21:02:54 +00:00
2017-08-07 18:30:35 +00:00
2019-07-11 21:19:33 +00:00
2019-07-08 19:03:38 +00:00
2019-03-21 12:01:21 +00:00
2019-07-11 21:19:33 +00:00
2019-03-19 15:50:24 +00:00
2019-04-26 16:37:51 +00:00
2019-03-19 15:50:24 +00:00
2019-07-15 17:50:31 +00:00
2019-06-20 15:08:34 +00:00
2019-05-08 22:09:57 +00:00
2019-05-03 15:37:07 +00:00
2018-06-27 15:33:33 +00:00
2019-07-24 19:40:13 +00:00
2019-07-27 14:32:23 +00:00
2018-06-27 15:33:33 +00:00
2017-08-07 18:30:35 +00:00
2017-08-07 18:30:35 +00:00
2019-06-20 15:08:34 +00:00
2019-06-20 15:08:34 +00:00
2019-06-20 15:08:34 +00:00
2019-05-03 15:37:07 +00:00
2019-07-27 14:32:23 +00:00
2017-08-07 18:30:35 +00:00
2019-03-21 12:01:21 +00:00
2019-06-20 15:08:34 +00:00

+==============================================================================+
| How to organize the lit tests                                                |
+==============================================================================+

- If you write a test for matching a single DAG opcode or intrinsic, it should
  go in a file called {opcode_name,intrinsic_name}.ll (e.g. fadd.ll)

- If you write a test that matches several DAG opcodes and checks for a single
  ISA instruction, then that test should go in a file called {ISA_name}.ll (e.g.
  bfi_int.ll

- For all other tests, use your best judgement for organizing tests and naming
  the files.

+==============================================================================+
| Naming conventions                                                           |
+==============================================================================+

- Use dash '-' and not underscore '_' to separate words in file names, unless
  the file is named after a DAG opcode or ISA instruction that has an
  underscore '_' in its name.