abhi9u@lemmy.world to Technology@lemmy.worldEnglish · 11 个月前Hardware-Aware Coding: CPU Architecture Concepts Every Developer Should Knowblog.codingconfessions.comexternal-linkmessage-square7linkfedilinkarrow-up174arrow-down16
arrow-up168arrow-down1external-linkHardware-Aware Coding: CPU Architecture Concepts Every Developer Should Knowblog.codingconfessions.comabhi9u@lemmy.world to Technology@lemmy.worldEnglish · 11 个月前message-square7linkfedilink
minus-squareInverseParallax@lemmy.worldlinkfedilinkEnglisharrow-up1·11 个月前Really depends on the target, llvm goes between unrollimg and vectorizing cleanly, to unrollimg to a ludicrous degree, to refusing to unroll period. Some of it is subtarget specific, but sometimes it’s just weird. Gcc is evil incarnate, all it’s passes are at war with each other, loop Canon form often broke vectorization and even unrolling period.
Really depends on the target, llvm goes between unrollimg and vectorizing cleanly, to unrollimg to a ludicrous degree, to refusing to unroll period.
Some of it is subtarget specific, but sometimes it’s just weird.
Gcc is evil incarnate, all it’s passes are at war with each other, loop Canon form often broke vectorization and even unrolling period.