OSDN Git Service

Fix - CodeExtractor : Inherit Target Dependent Attributes from the parent function.
authorSean Silva <chisophugis@gmail.com>
Mon, 1 Aug 2016 03:15:32 +0000 (03:15 +0000)
committerSean Silva <chisophugis@gmail.com>
Mon, 1 Aug 2016 03:15:32 +0000 (03:15 +0000)
commit980a4b4d40ba0103974b222912967f8b3f8d27d4
treed9044058e73e13026c050871df460c9342b6cb02
parent837f6c046b79c5e4b30fcfbf260b8b39c2050878
Fix - CodeExtractor : Inherit Target Dependent Attributes from the parent function.

When extracting a set of blocks make sure to inherit all of the target
dependent attributes to make sure that the function will be valid for
lowering. One example is the "target-features" attribute for x86, if the
extracted region has functionality that relies on a specific feature it
will fail to be lowered.
This also allows for extracted functions to be valid for inlining, at
least back into the parent function, as the target attributes are tested
when inlining for compatibility.

Patch by River Riddle!

Differential Revision: https://reviews.llvm.org/D22713

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@277315 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/Utils/CodeExtractor.cpp
test/Transforms/CodeExtractor/InheritTargetAttributes.ll [new file with mode: 0644]