Matt Arsenault 9babdf4265 AMDGPU: Fix verifier errors in SILowerControlFlow
The main sin this was committing was using terminator
instructions in the middle of the block, and then
not updating the block successors / predecessors.
Split the blocks up to avoid this and introduce new
pseudo instructions for branches taken with exec masking.

Also use a pseudo instead of emitting s_endpgm and erasing
it in the special case of a non-void return.

llvm-svn: 273467
2016-06-22 20:15:28 +00:00
..
2016-05-05 20:07:37 +00:00
2016-05-05 20:07:37 +00:00
2016-05-05 20:07:37 +00:00
2016-02-08 19:06:01 +00:00
2016-05-25 18:07:36 +00:00
2016-05-21 00:29:27 +00:00
2016-04-06 19:40:20 +00:00
2016-06-02 19:54:26 +00:00
2016-05-05 20:07:37 +00:00
2016-06-09 19:17:15 +00:00
2016-06-09 23:42:54 +00:00
2016-06-09 23:42:54 +00:00
2016-05-05 20:07:37 +00:00
2016-06-02 19:54:26 +00:00
2016-05-28 00:19:52 +00:00
2016-05-28 00:19:52 +00:00
2016-06-09 19:17:15 +00:00
2016-05-05 20:07:37 +00:00
2016-05-05 20:07:37 +00:00
2016-01-28 20:53:35 +00:00
2016-06-02 19:54:26 +00:00
2016-05-05 20:07:37 +00:00
2016-05-05 20:07:37 +00:00
2016-06-02 19:54:26 +00:00
2016-06-02 19:54:26 +00:00
2016-06-02 19:54:26 +00:00
2016-06-02 19:54:26 +00:00
2016-06-02 19:54:26 +00:00
2016-06-02 19:54:26 +00:00
2016-06-02 19:54:26 +00:00
2016-06-02 19:54:26 +00:00
2016-06-02 19:54:26 +00:00
2016-06-02 19:54:26 +00:00
2016-06-02 19:54:26 +00:00
2016-06-02 19:54:26 +00:00
2016-06-02 19:54:26 +00:00
2016-06-02 19:54:26 +00:00
2016-06-02 19:54:26 +00:00
2016-06-02 19:54:26 +00:00
2016-06-02 19:54:26 +00:00
2016-05-05 20:07:37 +00:00
2016-05-05 20:07:37 +00:00
2016-06-15 00:11:01 +00:00
2016-05-05 20:07:37 +00:00
2016-05-05 20:07:37 +00:00
2016-05-05 20:07:37 +00:00
2016-05-18 15:48:44 +00:00
2016-04-06 19:40:20 +00:00
2016-05-05 20:07:37 +00:00
2016-05-05 20:07:37 +00:00
2016-05-05 20:07:37 +00:00
2016-05-21 00:29:40 +00:00
2016-05-05 20:07:37 +00:00
2016-05-05 20:07:37 +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.