Commit Graph

3894 Commits

Author SHA1 Message Date
3fdb587d8b Open-source whole Vector Compute backend
Change-Id: Id22b13722d4c79f70e4b0d1629510526d8dcf2e2
2020-07-07 11:38:03 -07:00
b5e1a2867d Move Accumulator substitution into its own file.
Change-Id: I81762d8677cdce6330395987bb89009f36585a24
2020-07-07 11:30:25 -07:00
16b154276b IGC constant folding works only on internal intrinsics
ConstantFolderIGC is introduced to assure availibility of constant folding functionality for IGC clients. The constant folder give a hand for the instructions that are not constant folded by llvm passes or its folder.

Change-Id: Ie8d424958befc4096cadf951fa3beb47bd702b3f
2020-07-07 09:38:16 -07:00
e680f303c2 Add an analysis to check if an instruction's def reaches the end of its parent basic block.
Change-Id: I72cffd9681266cce0b87115c84a23c423ad6c4dc
2020-07-07 00:27:44 -07:00
30bfeb642a Dumping refactor
Change-Id: Idc1fdb36f6bf7bf2b2b4c863e3724087e06e0833
2020-07-06 11:01:21 -07:00
a799d4f26b Remove SIMD size dependence on -g. SIMD size is an optimization so it is
dependent on whether optimizations are enabled.

Change-Id: Ife590628ea075d24be58d6e29e33e6889423e05c
2020-07-05 22:07:07 -07:00
a1d0b074b6 DWARF debugger location expressions fixes
Change-Id: Icd80bd946941d5026ca057651e967027d4c6feaa
2020-07-05 00:13:03 -07:00
6934fa8d27 Refactor typed read/write emitters
Change-Id: Id48c4ac2f4bb096d9d63f8b6a8f839310e92797d
igc-1.0.4312
2020-07-03 05:35:42 -07:00
0b34546c5b Introduction of new intrinsics to handle saturation modifier for some operations
Change-Id: I1ed63ceace5b48792d42cfe9c396c312bb8c624e
2020-07-03 02:15:31 -07:00
931ea39ded Refactor for function alwaysinline attribute.
Allows testing subroutines/stack-calls/indirect-calls without causing perf issues in default mode.

Change-Id: I7695623205fb6660d39df503dd5bf87209d25784
2020-07-02 15:18:05 -07:00
a0a8f2bcd6 Change denseMatrixLimit heuristic
Change-Id: Ib0ccf91af72ff29c867ff145571cddab4048e1bf
2020-07-02 12:16:56 -07:00
480c16890f Internal feature and fix.
Change-Id: Ie8fb87b4ba74c41f9eaabac43de50e9f0bc6501c
2020-07-01 23:35:50 -07:00
854165c3f5 Force retry if LICM pass may cause high spill in CS
Change-Id: I09a1bb109ebceb8cab15ed9570d9e4de6f1322ef
2020-07-01 17:58:07 -07:00
0d06030043 Avoid read-modify-write for spills on NoMask sends.
Change-Id: I2dce8fa2cdafd6fdcdf896c00f6cc196fdc1bfca
2020-07-01 15:56:29 -07:00
0cab4e5e47 Yet another bug fix for stack-call fill. We need to make sure subregister for the fill temp is correctly programmed.
Change-Id: I9e0ea2c73853a9127cf4eb3823560c1f8c90f121
2020-07-01 15:27:45 -07:00
b3dbdfdd7c Abort compilation if inline asm parsing fails.
Change-Id: Iba0251b10bc7f179a51b1272aa68b459549f6ff8
2020-07-01 14:57:36 -07:00
3dfff5bda0 Refactor vISA verification. Add checks for undefined/multiple-defined labels in vISA assembly.
Change-Id: Ifcc3bb94bb272002277dfae263143b3caa6b98fa
2020-07-01 13:46:54 -07:00
660eaba885 Combine bindless support for buffers and images. A new internal flag
is introduced (-cl-intel-use-bindless-mode). A new field is introduced
tp pass the bindless info to NEO.

Change-Id: I019ef0acf1a73a42dd211dbe7ee958eea9266c9e
2020-07-01 12:36:44 -07:00
c9fcef4912 Add hw_preemption_mode to ZEInfo
Change-Id: I0de17140d088db8b91cc5d8b05f5a1f73dd67e30
2020-07-01 11:56:30 -07:00
30371ced37 adding the HWORD, 32WORD and 64WORD support
Change-Id: I5dca51e53063cbf79834af89a79c927c69f0f747
2020-07-01 10:21:17 -07:00
aaab4dc05a Refactor MDLocation to use the new Metadata class.
Change-Id: I1dd44cecab785cb005f2815d8ea5cad6662f5b09
2020-07-01 08:54:47 -07:00
97dd18b969 Update SInstrTypes - gather information about wave instrinsics.
Change-Id: I491424c03ddb1a1057e5b0a9fe7595f193a947b1
2020-07-01 04:43:34 -07:00
35e6a34f86 [Autobackout][FuncReg]Revert of change: 529d33b961
Internal feature and fix.

Change-Id: I0a109e78b856993dc5792164e4cb0b7079cca526
2020-06-30 19:31:53 -07:00
261895ce35 OverrideOCLMaxParamSize is meant to be DWORD, not bool.
This change changed it from bool to DWORD.

Change-Id: I5e9cfd9a02a777832842b2c2547afa8f56b0a5d8
2020-06-30 14:50:54 -07:00
ff29214977 Implementing lowering of umul_with_overflow
and smul_with_overflow intrinsics.
Refactoring of reused code.

Change-Id: Ia84d2d67edee17bf99db4c08e638e775a6bd965b
2020-06-30 06:17:19 -07:00
4c114428c4 Replace G4_BB::insert() wth G4_BB::insertBefore() and
G4_BB::insertAfter(). These functions attach debug info to instruction
being inserted.

Change-Id: Ic7ef4e9366a796617be713b68fe1eb4412d252cc
2020-06-30 03:50:08 -07:00
3b5c3a823c DWARF debugger location expressions fixes
Change-Id: I8844583cc69bb9f892d623aba2ecb63d619a5667
2020-06-30 01:20:49 -07:00
529d33b961 Internal feature and fix.
Change-Id: I5b5c18e649b64cc03872411a118e4ababdd7ddeb
2020-06-29 21:03:00 -07:00
23164d9edd Avoid using bb->getInstList() when possible. Use BB's wrapper instead.
Change-Id: I260132364d771eaeb90eb2341f9899e5fa9a942d
2020-06-29 19:14:49 -07:00
08bf866bd8 Removed unused file HWCapsOpen.inc
Change-Id: I17f80f4cf490e687d489aa3efea5f7070961a8ef
2020-06-29 16:24:49 -07:00
b5ce43584e Handle 16-byte alignment correct for trivial and local RA.
Change-Id: Ibfa9b5468fad8679d3b80225b430ced39588e939
2020-06-29 14:33:18 -07:00
d41e68f9e4 Changes in code.
Change-Id: Ic67c4a5580f7184424b5d60676b27fa69dda0760
2020-06-29 14:01:09 -07:00
46c1036388 Minor refactor to spill code generation.
Change-Id: Ic3fe49ba76ba30b19fe9ebbe99eedc9799024233
2020-06-29 13:45:15 -07:00
c8c64370dc Internal Changes
Change-Id: Iabbac8f66ec96adcfbb159349da66939d9d0cd7b
2020-06-29 13:04:40 -07:00
3efa45f95b Remove support for handling struct return values in IGC BE.
Following SPIR-V call conventions, all struct arguments and return values are converted to pass-by-pointer arguments.
This removes the need for BE to support functions returning struct values, as IGC FE should convert all struct types to pass-by-pointer.

Change-Id: Ie3731227548b083f64601cdc03ef93b0a717b81c
2020-06-29 12:15:30 -07:00
6303594ae9 Internal feature and fix.
Change-Id: Id837c8b2642dc33a2075bde489ace45f1fdb7756
2020-06-28 21:24:16 -07:00
cf5a7e9015 Refactor code for SLM int64 atomics builtins (second try)
Change-Id: I1cccd26e42212363f30b45312e002b1fb09761c4
2020-06-28 19:31:28 -07:00
ceec550b01 Fix a typo for the type of SLM int64 smin/smax atomics.
Change-Id: Icff67ecdf0029bc259875b4a7fbebca67a743c6e
2020-06-28 18:27:08 -07:00
51153d772d [Autobackout][FuncReg]Revert of change: 1bbc76f31d
Internal feature and fix.

Change-Id: I408dd20a3a53b27cf27ba3e031e562b26686542b
2020-06-27 16:14:34 -07:00
036fb0547a [Autobackout][FuncReg]Revert of change: e05f1a1a9c
Refactor code for SLM int64 atomics builtins.

Change-Id: Icb2767fd01e67b5f10266fdd2e61fe25f0cda6fc
2020-06-26 23:04:14 -07:00
e04edc6e40 Removing unused passes
Change-Id: Ia7a2cf267758cacc0ccf428c1b1ade13e6d03b15
2020-06-26 19:35:04 -07:00
1bbc76f31d Internal feature and fix.
Change-Id: I5057c4d3a1bcaae573d76813d444ab04d8530897
2020-06-26 18:52:55 -07:00
dd7319e3eb Add a metadata framework to vISA. First use is to tag comments to a Gen instruction.
Change-Id: Ic0850e2cab02aa662bcd2e34c753c0256e8b06e3
2020-06-26 17:58:18 -07:00
dedca4d91e Adding comments and annotations to our shader dumps for IGC Intrinsics for example...
; Function Desc: Read a scalar value from a buffer pointer at byte offset
; Ouput:
; Arg 0: buffer pointer, result of GetBufferPtr
; Arg 1: offset from the base pointer, in bytes
; Arg 2: aligment in bytes
; Arg 3: volatile, must be an immediate
; Function Attrs: argmemonly nounwind readonly
declare float @llvm.genx.GenISA.ldraw.indexed.f32.p1441792f32(float addrspace(1441792)*, i32, i32, i1)

Change-Id: Icc1fc84a0d3a9b5b1b1711d904a50c3c71776751
2020-06-26 13:44:32 -07:00
d94b2ad433 [Autobackout][FuncReg]Revert of change: bb99d9bc80
Enable variable split.

Change-Id: Ie9eb6c35ef57833333bac3f24e6074e2cbaaf698
2020-06-26 07:48:18 -07:00
5977c4a564 Refactor code for stateless buffer loads promotion.
Change-Id: Ib5dd732ed7ca023a29394c2091ba038dcdadd4c2
2020-06-26 05:23:55 -07:00
0f4ccb6322 Update ICBE_VERSION
Change-Id: I37d663826857458b29f40a971a8d9fff23e171a8
2020-06-26 03:23:46 -07:00
7b65e2a6c4 use IGC_ASSERT in IGC/AdaptorCommon
Change-Id: I3964be600b4553397c8e8e46d63389ae5a582e95
2020-06-26 03:22:20 -07:00
4d07de717d Minor refactoring.
Change-Id: I94bcc22b6cccf1b4ac5ed864ebfe39fbf51ca09c
2020-06-26 03:18:48 -07:00
c682a1b2d6 use IGC_ASSERT in IGC/GenISAIntrinsics
Change-Id: I2b67636ebd014c21f8d0cd6045cb3a25bf04dafe
2020-06-26 03:17:34 -07:00