Skip to content

Commit e060727

Browse files
scottp101paigeale
authored andcommitted
A patch was previously made to the LoopUnroll pass to allow loop
unrolling to occur even if it contained blocks with 'noduplicate' instructions. Given that the newer 'convergent' attribute models the barrier restriction better, we change that here. Change-Id: I0f075cebfa74130f50e232a1bdc799ff16cf9470
1 parent 1517055 commit e060727

File tree

7 files changed

+7
-87
lines changed

7 files changed

+7
-87
lines changed

IGC/BiFModule/CMakeLists.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -852,7 +852,6 @@ endfunction()
852852
### -include-pch OCL_64 -cl-enable-half -D__EXECUTION_MODEL_DEBUG=1 -D__OPENCL_C_VERSION__=120 -Dcl_khr_fp16 -I .\IGCBiFModule\PointerSize\IBiF_size_t.cl -o .\IGCsize_t_64.bc
853853

854854
# Other:
855-
# %LLVM_AS_EXE% IGCBiFModule\shared\IGCBiF_Impl_ll.ll -o .\IBiF_Impl_ll.bc
856855
# %LLVM_LINK_EXE% .\IBiF_Impl_int.bc .\IGCBiF_Impl_ll.bc -o .\OCLBiFImpl.bc
857856

858857

@@ -916,7 +915,6 @@ igc_bif_build_bc(
916915
OUTPUT "${IGC_BUILD__BIF_DIR}/IBiF_Impl_int_spirv.bc"
917916
TRIPLE spir64
918917
SOURCES "${IGC_OPTION__BIF_SRC_OCL_DIR}/Implementation/IBiF_Impl.cl"
919-
"${IGC_OPTION__BIF_SRC_OCL_DIR}/Implementation/IGCBiF_Impl_ll.ll"
920918
FORCE_INCLUDE ${IGC_BUILD__BIF_OCL_PCH_SRC}
921919
INCLUDE_DIRECTORIES ${IGC_BUILD__BIF_SPIRV_COMMON_INC_DIRS}
922920
DEFINES "__EXECUTION_MODEL_DEBUG=1" "__OPENCL_C_VERSION__=200" "__IGC_BUILD__" ${KHR_DEFINES} ${FLAG}

IGC/BiFModule/Implementation/IGCBiF_Impl_ll.ll

Lines changed: 0 additions & 39 deletions
This file was deleted.

IGC/BiFModule/Implementation/IGCBiF_Intrinsics.cl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,9 @@ local uchar* __builtin_IB_AllocLocalMemPool(uint, uint);
115115
void __builtin_IB_memfence(bool commitEnable, bool flushRW, bool flushConstant, bool flushTexture, bool flushIcache, bool isGlobal, bool invalidateL1);
116116
void __builtin_IB_flush_sampler_cache(void);
117117

118+
// Barrier
119+
void __builtin_IB_thread_group_barrier(void) __attribute__((convergent));
120+
118121
// Workitem functions
119122
uint __builtin_IB_get_work_dim(void) __attribute__((const));
120123
uint __builtin_IB_get_group_id(uint) __attribute__((const));

IGC/BiFModule/Implementation/barrier.cl

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,6 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
2626

2727
// Barrier Instructions
2828

29-
// Just empty prototype - implementation handwritten in .ll
30-
31-
INLINE void __intel_Barrier( void );
32-
3329
static void __intel_atomic_work_item_fence( Scope_t Memory, uint Semantics )
3430
{
3531
bool fence = Semantics & ( Acquire | Release | AcquireRelease | SequentiallyConsistent );
@@ -66,7 +62,7 @@ void __builtin_spirv_OpControlBarrier_i32_i32_i32(Scope_t Execution, Scope_t Mem
6662

6763
if( Execution <= Workgroup )
6864
{
69-
__intel_Barrier();
65+
__builtin_IB_thread_group_barrier();
7066
}
7167
}
7268

IGC/BiFModule/Languages/OpenCL/IBiF_Impl.cl

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -211,8 +211,6 @@ static uint get_spirv_mem_order( memory_order order )
211211
//*****************************************************************************/
212212
// Synchronization functions
213213
//*****************************************************************************/
214-
// Just empty prototype - implementation handwritten in .ll
215-
INLINE void __intel_Barrier( void );
216214

217215
INLINE void OVERLOADABLE work_group_barrier(cl_mem_fence_flags flags)
218216
{

IGC/BiFModule/Languages/OpenCL/IGCBiF_Impl_ll.ll

Lines changed: 0 additions & 36 deletions
This file was deleted.

IGC/GenISAIntrinsics/Intrinsic_definitions.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,10 +102,10 @@
102102
"GenISA_icmpxchgatomictyped": ["anyint",["anyptr","int","int","int",0,0],"ReadWriteArgMem"],
103103
"GenISA_atomiccounterinc": ["int",["anyptr"],"ReadWriteArgMem"],
104104
"GenISA_atomiccounterpredec": ["int",["anyptr"],"ReadWriteArgMem"],
105-
"GenISA_threadgroupbarrier": ["void",[],"NoDuplicate"],
106-
"GenISA_memoryfence": ["void",["bool","bool","bool","bool","bool","bool","bool"],"NoDuplicate"],
105+
"GenISA_threadgroupbarrier": ["void",[],"Convergent"],
106+
"GenISA_memoryfence": ["void",["bool","bool","bool","bool","bool","bool","bool"],"Convergent"],
107107
"GenISA_flushsampler": ["void",[],"None"],
108-
"GenISA_globalSync": ["void",[],"None"],
108+
"GenISA_globalSync": ["void",[],"Convergent"],
109109
"GenISA_uavSerializeOnResID": ["void",["int"],"None"],
110110
"GenISA_uavSerializeAll": ["void",[],"None"],
111111
"GenISA_WorkGroupAny": ["int",["int"],"None"],

0 commit comments

Comments
 (0)