mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-01-16 13:08:42 +00:00
1ce752b741
OpenMP reductions need a neutral element, so we match some known reduction kinds (integer add/mul/or/and/xor, float add/mul, integer and float min/max) to define the neutral element and the atomic version when possible to express using atomicrmw (everything except float mul). The SCF-to-OpenMP pass becomes a module pass because it now needs to introduce new symbols for reduction declarations in the module. Reviewed By: chelini Differential Revision: https://reviews.llvm.org/D107549