This is an archive of the discontinued LLVM Phabricator instance.

Added missing exports
Needs ReviewPublic

Authored by jtsoftware on May 18 2015, 6:09 PM.

Details

Reviewers
ygao
Summary

It seems these exports are needed.

Diff Detail

Event Timeline

jtsoftware updated this revision to Diff 26028.May 18 2015, 6:09 PM
jtsoftware retitled this revision from to Added missing exports.
jtsoftware updated this object.
jtsoftware edited the test plan for this revision. (Show Details)
jtsoftware added a reviewer: rsmith.
jtsoftware added a subscriber: Unknown Object (MLST).
silvas added a subscriber: silvas.May 19 2015, 4:30 PM

The more interesting issue here is why having a submodule export itself causes a change in behavior.

It turns out that Module::buildVisibleModulesCache just recursively calls Module::getExportedModules. So without the self-export, the submodule doesn't export anything and contributes no exports, but if it does export itself, then it contributes itself to the list of exports.

In this case, e.g. #include <x86intrin.h> will trigger module intel to be imported, and since that module imports wmmintrin.h (through immintrin.h), then the aforementioned situation triggers.

jtsoftware updated this revision to Diff 26299.May 21 2015, 6:03 PM
jtsoftware added a reviewer: silvas.

It turns out that these are the exports needed, since the wmmintrin.h file includes the aes and pclmul headers.

jtsoftware edited reviewers, added: ygao, probinson; removed: rsmith.May 21 2015, 6:16 PM
silvas edited edge metadata.May 22 2015, 2:23 PM

This makes more sense. LGTM.

  • Sean Silva
probinson resigned from this revision.Jan 19 2016, 2:36 PM
probinson removed a reviewer: probinson.
silvas resigned from this revision.Jul 8 2016, 11:41 PM
silvas removed a reviewer: silvas.