Commit Graph

18372 Commits

Author SHA1 Message Date
cada8ff67e Backout of c02b97d981 due to function regression
Change-Id: I743d27c84b794f413e03f102b6bde3147af29fa9
2018-05-21 14:24:32 -07:00
e15cda3184 - Emits predicates with a single element for uniform select condition
-  Better handle SIMD1 pseudo logic instructions. Turn pseudo_xor (1) P3 P1 P2 into xor (1) P3 P1 P2
-  Fixed a bug in folding cmp as conditional modifier optimization

Change-Id: I8278c3e8a2926e9d15444c1896c224845a70af4f
2018-05-21 14:17:13 -07:00
3bd716cf2b Backout of 0143c8174c due to functional regression
Change-Id: I365c58d302d7a5199ad469b2bd9c8f042eba9ead
2018-05-21 14:10:57 -07:00
c115e9c39a Bug fix on refactor to remove API specific uscAILInfo
Change-Id: I1fef35159ac3ca108c9075dbc70057b5b3f0a281
2018-05-21 12:18:46 -08:00
744ae968b0 Backout of a2737576ec due to functional regression
Change-Id: I8f4aff851d45ac1e8317033e42de0d82690bf605
2018-05-21 12:25:33 -07:00
02a8dd3b94 Add module metadata switch to allow frontends to control the behavior of memopt wrt. aliasing of statefull resources.
Change-Id: I6f14e3b377e7f8c65116bf8168ddd5c07874aa76
2018-05-21 12:18:00 -07:00
451c918117 Adding gtPinInput to NEO-IGC interface
Change-Id: I5fd904d023e401d9d29a3417ad70b78d7e12526a
2018-05-21 10:03:21 -08:00
0143c8174c - Code emitter doesn't support all sizes of uniform loads, e.g. <6 x float>. Also it generates very inefficient code when fed with that uniform loads. Skip them so far.
Change-Id: I5cc231e9ac2646b0b69d314b932513f1188b63a3
2018-05-21 10:56:03 -07:00
c02b97d981 Provide global and local variable splitting in single pass, and handled in the same way.
Change-Id: I72ad7541c693541075647adb2a06c46ce1691142
2018-05-21 10:48:28 -07:00
07bc91292f Backout of 3c46f019fb because of Regression
Change-Id: I5dc289a05605d77ed1504a442b82e9fa26c11d8a
2018-05-21 10:40:28 -07:00
b570e19c83 WA, remove usage of CE0 in IGC
Change-Id: I9e58caa588d7f61ab7c15bc8d561168656270159
2018-05-21 08:41:06 -08:00
da21638b93 Backout of c04a092be5
Change-Id: I63b6ee2db6ddcb4684bd07a4e23daad9727412f5
2018-05-21 14:02:50 +02:00
8eb1361b80 Fix loop mul hoisting optimization when multiply result is referenced multiple times.
Resubmit 9b7cc0388a after fixing regression.

Change-Id: I469fb010116040ef40bb86d7369948092d5bffd7
2018-05-21 13:33:45 +02:00
3c46f019fb Emits predicates with a single element for uniform select condition
Better handle SIMD1 pseudo logic instructions. Turn pseudo_xor (1) P3 P1 P2 into xor (1) P3 P1 P2

Change-Id: Ibfe424305a4f773931a13a2c6c7e28fe7e16c914
2018-05-21 13:02:15 +02:00
1d3ef54716 Update IGA
Change-Id: Ieb4e0c55ea8f63270492c9f32c71aed725f4c648
2018-05-21 11:56:08 +02:00
8a5091dd1d remove IPA option from LivenessAnalysis' ctor, as it should be enabled based on the presence of subroutines.
Change-Id: If7d3737b54ce752b0282fb27f17c0fcf9625c1f0
2018-05-21 10:50:53 +02:00
c04a092be5 WA, remove usage of CE0 in IGC
Change-Id: I1215809af35c8c714f9c91dcd0fa55981b127fca
2018-05-21 09:50:03 +02:00
efa00cb663 Folding global offsets to zero and replacing enqueued local offsets to their correspinding local_size X/Y/Z for DirectML kernels
This code identifies the built ins for global offsets and enqued local sizes. It folds the qneueued local offsets to the value read from metadata and folds the global offsets to zero if compilation is invoked from the Multiadapter.
Multiadapter passes a flag to IGC to enable folding global offset to zero.

Change-Id: I84aaf8aa6d316c723168903da41ac1fa363be071
2018-05-21 09:12:56 +02:00
82a2d714e2 Backout of 9b7cc0388a
Change-Id: I930d93f71a90646132b63d9e05add7a3a5502dd1
2018-05-21 08:24:49 +02:00
c670611c26 Backout of 8015344a85
Change-Id: I261966f540d2f51297a3e2cf7da24b0f4632fc17
2018-05-18 16:25:49 -07:00
87d2b03016 Backout of d564fc68b5
Change-Id: I3891b55854799558d7c349eecfa4dfe244fb24f5
2018-05-18 16:19:31 -07:00
182bf51a72 Do local variable analysis in each iteration to get accurate local and global variable info after rematerialization and spill
Change-Id: I90a2b9aaf5447d78730ab2eae041f4410ce76408
2018-05-18 14:04:53 -08:00
d564fc68b5 WA, remove usage of CE0 in IGC
Change-Id: I8086922abc710a28d011960e28f446f0aa9268be
2018-05-18 13:51:22 -07:00
e6b4f21682 This gets rids of 'noexcept' used with no exception handling mode specified.
Change-Id: I9a810867c44d1364b209882d1c7dce73006e3d8d
2018-05-18 12:39:23 -07:00
ad95139f89 Add threshold to sampler clustering in MemOpt2 to avoid increase register pressure too much.
Change-Id: I3e3b3ff8287feec7c193f5b6c06ce973ba137474
2018-05-18 12:21:08 -07:00
04d3761a6f Change to instruction's text form
Change-Id: I7696f7380878303379d4f283cc55255083c22635
2018-05-18 12:14:08 -07:00
6d33dc8359 Reversed the order of compilation based on SIMD mode. This is done only in compute path and only if multiple simd compilation mode compilation is enabled. This will improve overall compilation time if mulitple simd mode compilation is enabled.
Change-Id: If71f2729d3d7fb5a3b545e55d4194461345a0003
2018-05-18 10:25:12 -08:00
f6be9b0266 Do local variable analysis in each iteration to get accurate local and global variable info after rematerialization and spill
Fixed a bug: for flag and address allocation, the mark local variables pass is still required. This is because in our dataflow analysis, the local info is required for the psudo kill

Change-Id: I0e5801f088152e60d3e8d9c681a53e6b468a823a
2018-05-18 11:03:31 -07:00
4f7c82c9d3 Do not perform IPA in pre-RA scheduling if there are no subroutines
Change-Id: Ic9d667d57bccfbc9c81f2850a4f9e29031fd4f56
2018-05-18 09:09:11 -08:00
b89924d6dd Enable TE factors padding.
Change-Id: I521902b7b74abea6d805ffbac477b5f6d8d123a8
2018-05-18 13:47:08 +02:00
3ccf17d077 Fixing an issue reported over email related to a functional error in compilation of a pixel shader.
The MCS optimization was hoisting ldms insts illegally.
This change checks whether the sample index is a constant value and avoids hoisting ldms insts if it is not.

Change-Id: Ia1a89857b5a6ce1ee5f68ccc05e83e0c3578f2c6
2018-05-18 12:58:55 +02:00
903702be8d Do local variable analysis in each iteration to get accurate local and global variable info after rematerialization and spill
Fixed a bug: for flag and address allocation, the mark local variables pass is still required. This is because in our dataflow analysis, the local info is required for the psudo kill

Change-Id: I07111a2aa0f14b93cf669444d1ae82b2af0c245e
2018-05-18 12:27:48 +02:00
c0fe93ff98 Commit contains 2 changes.
Change 1:
    add fence before EOT for selected platforms
  made by: Weiyu Chen

Change 2:
    Ever since the transtion to Universal Driver for windows builds, long build times issues have been observed. This is due to APIValidator step which runs on all .dll/.exe files in the target's dump folder. I have moved .exe files we generate and are not part of the driver package to its own location so that they do not get scanned by APIValidator, as we do not care if the are Universal compliant or not. We only care about iga.dll and igc.dll
  made by: Juan1 Rodriguez

Change-Id: I7c7982dac83575bf90dc3f9dd6a50413a7e856e4
2018-05-18 11:39:43 +02:00
ce9d68c827 Enables compiler option to promote stateless to bindless buffers in OCL path.
Change-Id: I200413e7619e9f127134826c00c2beaaca3ea9ce
2018-05-17 17:16:55 -08:00
799ac09daa Fix build warning
Change-Id: I5db4956a57b3b7bfac9474de0b8d788bfe81a8c4
2018-05-17 17:41:09 -07:00
4575a15f79 Partial Backout of cd2a60ece2
Change-Id: I61d9608b9f4703bdf184a47148d0aeb93b2db9c6
2018-05-17 16:59:19 -07:00
5c36cc640d Shuffles on short/ushort types were lowered to WaveShuffleIndex.f16 - we did unnecessary short-to-half type conversions. This change adds short simd shuffle intrinsic.
Change-Id: I72873977304d12513b2fb8b96873f4f3d66e7371
2018-05-17 15:35:50 -07:00
12c0be6902 Allow LVN for non-contiguous regions. This can help optimize more instructions.
Change-Id: I140b48b408b99a2aac59eee749736bf881d4edff
2018-05-17 15:26:24 -07:00
cd2a60ece2 Enable TE factors padding and Add logic to enable TCS HW barrier
Change-Id: I38488f128d1d73460b81597026464510c3a7a8b1
2018-05-17 13:21:54 -08:00
aa6f1a5821 Backout of fea65b3fb1 due to test issues
Change-Id: I49d502260ddcd4dd58abeb92ce560a24fdef1bfe
2018-05-17 09:38:37 -08:00
e958ffcdb0 Update IGA files
Change-Id: I655f975e87f234bec81e64f0f374e26cd66f5000
2018-05-17 10:01:23 -07:00
421b551d8a For global RA only. Local RA is itself's one
Change-Id: I1e55c7ef8fc22df671fad12b5e3e53a8ef1ca1df
2018-05-17 08:09:27 -08:00
23b29bba86 Revert change d908154
Change-Id: I0f99acf7935c73ac82f101ba509641b677ce07d5
2018-05-17 14:28:47 +02:00
cb54da2348 in payload coalescing, do not resize on an isolated variable. This avoids a situation where the last element in the send payload is an isolate variable and we unnecessarily grow the size of the (coalesced) payload
Change-Id: I4e16f164c0775b87758e947e86809078fa466c5e
2018-05-17 13:27:01 +02:00
a2737576ec re-enable acc1 for acc substitution
Change-Id: Ia83d3bec9744fd48d294abf57db054023fd7bd0f
2018-05-17 12:30:23 +02:00
8179a73e76 Sent two patch token for bindless sampler and image in case both BTI and bindless handle may be used.
This will make the driver sends both the bindless handle and bind the resource in the binding table. This way we can promote only part of the resource accesses

Change-Id: I436ef22d153772f21f309cd409f1287620526617
2018-05-17 11:20:38 +02:00
959e87fb51 Backout of 6ecb3e322c due to test issues
Change-Id: I95871efeb4b745a82c6ae7803e48a546bd5c7e26
2018-05-16 19:59:27 -07:00
9dd793383e Cleanup - removing non ASCII from source code
Change-Id: I549a1af98cca368d5f1338d626096b53cb37afa5
2018-05-16 18:17:28 -07:00
d798e9a3f0 Backout of Built-In Indexing due to test failures
Change-Id: I1c438a3010a6a94af6047b4aff3183d5fc68a27a
2018-05-16 15:43:08 -08:00
ab0919a334 make instList in G4_BB private. This allows us to add a parent pointer from G4_INST to G4_BB in the future
Change-Id: Idb1b2028128fde8d76b44aebb3d43794fb63b48f
2018-05-16 13:39:07 -08:00