summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r300/r300_vs.c
diff options
context:
space:
mode:
authorTom Stellard <[email protected]>2013-09-16 10:32:59 -0700
committerTom Stellard <[email protected]>2013-10-16 09:39:15 -0700
commitde1de88dfc478db597726d88231c6c0a7f936121 (patch)
treed6c680df0d7890b784f980e8256eaabc05724f9c /src/gallium/drivers/r300/r300_vs.c
parent2273b04c6198d591c3dc5123c4d100da5bcc0e18 (diff)
clover: Link libclc before running any optimizations
This is required in order for clang to correctly handle the OpenCL C barrier() builtin which has the following restrictions acording to the OpenCL 1.1 Specification: If barrier is inside a conditional statement, then all work-items must enter the conditional if any work-item enters the conditional statement and executes the barrier. If barrier is inside a loop, all work-items must execute the barrier for each iteration of the loop before any are allowed to continue execution beyond the barrier. By linking before otimizations, we can replace calls to barrier() with calls to a target specific intrinsic which has the noduplicate attribute This attribute prevents clang from performing optimizations which could violate the above rules. This attribute must be applied to the call instruction that invokes the function, so it is not enough to add this attribute the barrier() declaration. As a bonus this will probably speed up compile times since we will no longer need to run link-time optimizations.
Diffstat (limited to 'src/gallium/drivers/r300/r300_vs.c')
0 files changed, 0 insertions, 0 deletions