Currently default simd alignment is specified by Clang specific TargetInfo class. This class cannot be reused for LLVM Flang. If we move the default alignment field into TargetMachine class then we can create TargetMachine objects and query them to find SIMD alignment.
Scope of changes:
- Added information about maximal allowed SIMD alignment to TargetMachine classes.
- Added TargetMachineCache to store created TargetMachine items and query them to find the alignment
- Removed getSimdDefaultAlign function from TargetInfo class.