| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
When control flow is implemented using the exec mask, the compiler will
insert branch instructions to skip over the masked section when exec is
zero if the section contains more than a certain number of instructions.
The previous code would only count instructions in successor blocks,
and this patch modifies the code to start counting instructions in all
blocks between the start and end of the branch.
Reviewers: nhaehnle, arsenm
Subscribers: arsenm, llvm-commits
Differential Revision: http://reviews.llvm.org/D18282
llvm-svn: 263969
|
| |
|
|
|
|
| |
This fixes an issue with rL263658 pointed out by Tom Stellard.
llvm-svn: 263823
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Uniform loops where the branch leaving the loop is predicated on VCCNZ
must be skipped if EXEC = 0, otherwise they will be infinite.
Reviewers: tstellarAMD, arsenm
Subscribers: arsenm, llvm-commits
Differential Revision: http://reviews.llvm.org/D18137
llvm-svn: 263658
|
| |
|
|
|
|
|
|
|
|
| |
Reviewers: tstellarAMD, arsenm
Subscribers: arsenm
Differential Revision: http://reviews.llvm.org/D18058
llvm-svn: 263441
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This was hardcoded to the static private size, but this
would be missing the offset and additional size for someday
when we have dynamic sizing.
Also stops always initializing flat_scratch even when unused.
In the future we should stop emitting this unless flat instructions
are used to access private memory. For example this will initialize
it almost always on VI because flat is used for global access.
llvm-svn: 260658
|
| |
|
|
| |
llvm-svn: 260645
|
| |
|
|
| |
llvm-svn: 260644
|
| |
|
|
|
|
| |
BuildMI already adds these since they are defined correctly now.
llvm-svn: 250961
|
| |
|
|
| |
llvm-svn: 250797
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This stops using an unknown reg class operand.
Currently build_vector selection has a broken looking check
where it tries to use a VGPR reg class and an SGPR one if it
sees an SGPR use.
With the source operand has an explicit VGPR class,
illegal copies will be inserted that SIFixSGPRCopies will take care
of normally later, which will allow removing the weird check
of build_vector users. Without this, when removed v_movrels_b32 would
still be emitted even though all of the values were only stored in
SGPRs.
llvm-svn: 249494
|
| |
|
|
|
|
|
| |
SIFixSGPRCopies does not modify the CFG, but this was
being recomputed before running SIFoldOperands.
llvm-svn: 248587
|
| |
|
|
| |
llvm-svn: 244380
|
| |
|
|
|
|
| |
For the same reasons as the other physical registers.
llvm-svn: 244062
|
|
|
llvm-svn: 239657
|