When combining extracted functions, they may have different function attributes. We want to make sure that we do not make any assumptions, or lose any information. This attempts to make sure that we consolidate function attributes to their most general case.
Tests:
- llvm/test/Transforms/IROutliner/outlining-compatible-and-attribute-transfer.ll
- llvm/test/Transforms/IROutliner/outlining-compatible-or-attribute-transfer.ll
Are we sure we want/need to duplicate this here in addition to the merge rules at the end of llvm/include/llvm/IR/Attributes.td ?