[PATCH] D70096: [strictfp] Replace dangling strictfp attrs with nobuiltin

Kevin P. Neal via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 1 14:45:45 PDT 2020


kpn added a comment.

I ran a check myself. I found that there are quite a few existing tests that enter BitcodeReader::materialize() from someplace other than BitcodeReader::materializeModule(). Perhaps one of these would be helpful in coming up with a new test?

  LLVM-Unit :: Bitcode/./BitcodeTests/BitReaderTest.MaterializeFunctionsForBlockAddr
  LLVM-Unit :: Bitcode/./BitcodeTests/BitReaderTest.MaterializeFunctionsForBlockAddrInFunctionAfter
  LLVM-Unit :: Bitcode/./BitcodeTests/BitReaderTest.MaterializeFunctionsForBlockAddrInFunctionBefore
  LLVM-Unit :: Bitcode/./BitcodeTests/BitReaderTest.MaterializeFunctionsOutOfOrder
  LLVM :: Analysis/StackSafetyAnalysis/ipa-alias.ll
  LLVM :: Feature/terminators.ll
  LLVM :: LTO/ARM/lto-linking-metadata.ll
  LLVM :: LTO/Resolution/X86/appending-var.ll
  LLVM :: LTO/Resolution/X86/asm-output.ll
  LLVM :: LTO/Resolution/X86/comdat-mixed-lto.ll
  LLVM :: LTO/Resolution/X86/comdat.ll
  LLVM :: LTO/Resolution/X86/common2.ll
  LLVM :: LTO/Resolution/X86/dead-strip-fulllto.ll
  LLVM :: LTO/Resolution/X86/diagnostic-handler-remarks-with-hotness.ll
  LLVM :: LTO/Resolution/X86/diagnostic-handler-remarks.ll
  LLVM :: LTO/Resolution/X86/function-alias-non-prevailing.ll
  LLVM :: LTO/Resolution/X86/ifunc2.ll
  LLVM :: LTO/Resolution/X86/link-odr-availextern.ll
  LLVM :: LTO/Resolution/X86/linker-redef.ll
  LLVM :: LTO/Resolution/X86/load-sample-prof-lto.ll
  LLVM :: LTO/Resolution/X86/mixed_lto.ll
  LLVM :: LTO/Resolution/X86/setting-dso-local.ll
  LLVM :: LTO/Resolution/X86/type-checked-load.ll
  LLVM :: LTO/X86/codemodel-1.ll
  LLVM :: LTO/X86/codemodel-2.ll
  LLVM :: LTO/X86/codemodel-3.ll
  LLVM :: LTO/X86/dllimport.ll
  LLVM :: LTO/X86/embed-bitcode.ll
  LLVM :: LTO/X86/internalize.ll
  LLVM :: LTO/X86/pr38046.ll
  LLVM :: LTO/X86/strip-debug-info.ll
  LLVM :: LTO/X86/symver-asm.ll
  LLVM :: LTO/X86/tailcallelim.ll
  LLVM :: LTO/X86/type-mapping-bug2.ll
  LLVM :: LTO/X86/type-mapping-bug3.ll
  LLVM :: Linker/2003-01-30-LinkerRename.ll
  LLVM :: Linker/2003-04-26-NullPtrLinkProblem.ll
  LLVM :: Linker/2003-08-28-TypeResolvesGlobal.ll
  LLVM :: Linker/2003-08-28-TypeResolvesGlobal2.ll
  LLVM :: Linker/2003-08-28-TypeResolvesGlobal3.ll
  LLVM :: Linker/2003-11-18-TypeResolution.ll
  LLVM :: Linker/2004-05-07-TypeResolution1.ll
  LLVM :: Linker/2006-01-19-ConstantPacked.ll
  LLVM :: Linker/2008-03-05-AliasReference.ll
  LLVM :: Linker/2008-07-06-AliasFnDecl.ll
  LLVM :: Linker/2008-07-06-AliasWeakDest.ll
  LLVM :: Linker/2009-09-03-mdnode.ll
  LLVM :: Linker/AppendingLinkage.ll
  LLVM :: Linker/basiclink.ll
  LLVM :: Linker/drop-debug.ll
  LLVM :: Linker/funcimport.ll
  LLVM :: Linker/funcimport2.ll
  LLVM :: Linker/funcimport_appending_global.ll
  LLVM :: Linker/funcimport_comdat.ll
  LLVM :: Linker/link-arm-and-thumb.ll
  LLVM :: Linker/link-global-to-func.ll
  LLVM :: Linker/linkage.ll
  LLVM :: Linker/linkmdnode.ll
  LLVM :: Linker/only-needed-debug-metadata.ll
  LLVM :: Linker/pr21374.ll
  LLVM :: Linker/pr26037.ll
  LLVM :: Linker/thinlto_funcimport_debug.ll
  LLVM :: Linker/transitive-lazy-link.ll
  LLVM :: Linker/type-unique-src-type.ll
  LLVM :: Other/extract.ll
  LLVM :: ThinLTO/X86/alias_import.ll
  LLVM :: ThinLTO/X86/autoupgrade.ll
  LLVM :: ThinLTO/X86/builtin-nostrip.ll
  LLVM :: ThinLTO/X86/cache-import-lists.ll
  LLVM :: ThinLTO/X86/cache-typeid-resolutions.ll
  LLVM :: ThinLTO/X86/cache.ll
  LLVM :: ThinLTO/X86/callees-metadata.ll
  LLVM :: ThinLTO/X86/crash_debuginfo.ll
  LLVM :: ThinLTO/X86/deadstrip.ll
  LLVM :: ThinLTO/X86/debuginfo-compositetype-import.ll
  LLVM :: ThinLTO/X86/debuginfo-cu-import.ll
  LLVM :: ThinLTO/X86/devirt.ll
  LLVM :: ThinLTO/X86/devirt2.ll
  LLVM :: ThinLTO/X86/devirt_single_hybrid.ll
  LLVM :: ThinLTO/X86/devirt_vcall_vis_hidden.ll
  LLVM :: ThinLTO/X86/devirt_vcall_vis_public.ll
  LLVM :: ThinLTO/X86/diagnostic-handler-remarks-with-hotness.ll
  LLVM :: ThinLTO/X86/diagnostic-handler-remarks.ll
  LLVM :: ThinLTO/X86/dicompositetype-unique-alias.ll
  LLVM :: ThinLTO/X86/dicompositetype-unique.ll
  LLVM :: ThinLTO/X86/dicompositetype-unique2.ll
  LLVM :: ThinLTO/X86/distributed_import.ll
  LLVM :: ThinLTO/X86/dot-dumper-full-lto.ll
  LLVM :: ThinLTO/X86/dot-dumper.ll
  LLVM :: ThinLTO/X86/dot-dumper2.ll
  LLVM :: ThinLTO/X86/drop-debug-info.ll
  LLVM :: ThinLTO/X86/funcimport-debug.ll
  LLVM :: ThinLTO/X86/funcimport-stats.ll
  LLVM :: ThinLTO/X86/funcimport-tbaa.ll
  LLVM :: ThinLTO/X86/funcimport.ll
  LLVM :: ThinLTO/X86/funcimport2.ll
  LLVM :: ThinLTO/X86/funcimport_alwaysinline.ll
  LLVM :: ThinLTO/X86/function_entry_count.ll
  LLVM :: ThinLTO/X86/globals-import-blockaddr.ll
  LLVM :: ThinLTO/X86/globals-import-const-fold.ll
  LLVM :: ThinLTO/X86/globals-import.ll
  LLVM :: ThinLTO/X86/guid_collision.ll
  LLVM :: ThinLTO/X86/import-constant.ll
  LLVM :: ThinLTO/X86/import-ro-constant.ll
  LLVM :: ThinLTO/X86/import_opaque_type.ll
  LLVM :: ThinLTO/X86/index-const-prop-alias.ll
  LLVM :: ThinLTO/X86/index-const-prop-cache.ll
  LLVM :: ThinLTO/X86/index-const-prop-comdat.ll
  LLVM :: ThinLTO/X86/index-const-prop-full-lto.ll
  LLVM :: ThinLTO/X86/index-const-prop-gvref.ll
  LLVM :: ThinLTO/X86/index-const-prop-ldst.ll
  LLVM :: ThinLTO/X86/index-const-prop-linkage.ll
  LLVM :: ThinLTO/X86/index-const-prop.ll
  LLVM :: ThinLTO/X86/index-const-prop2.ll
  LLVM :: ThinLTO/X86/lazyload_metadata.ll
  LLVM :: ThinLTO/X86/linkonce_aliasee_ref_import.ll
  LLVM :: ThinLTO/X86/llvm.used.ll
  LLVM :: ThinLTO/X86/local_name_conflict.ll
  LLVM :: ThinLTO/X86/local_name_conflict_var.ll
  LLVM :: ThinLTO/X86/module_asm2.ll
  LLVM :: ThinLTO/X86/module_asm_glob.ll
  LLVM :: ThinLTO/X86/personality-local.ll
  LLVM :: ThinLTO/X86/personality.ll
  LLVM :: ThinLTO/X86/pr35472.ll
  LLVM :: ThinLTO/X86/printer.ll
  LLVM :: ThinLTO/X86/reference_non_importable.ll
  LLVM :: ThinLTO/X86/referenced_by_constant.ll
  LLVM :: ThinLTO/X86/save_objects.ll
  LLVM :: ThinLTO/X86/section.ll
  LLVM :: ThinLTO/X86/writeonly-with-refs.ll
  LLVM :: ThinLTO/X86/writeonly.ll
  LLVM :: ThinLTO/X86/writeonly2.ll
  LLVM :: Transforms/FunctionImport/adjustable_threshold.ll
  LLVM :: Transforms/FunctionImport/comdat.ll
  LLVM :: Transforms/FunctionImport/funcimport.ll
  LLVM :: Transforms/FunctionImport/funcimport_alias.ll
  LLVM :: Transforms/FunctionImport/funcimport_cutoff.ll
  LLVM :: Transforms/FunctionImport/funcimport_debug.ll
  LLVM :: Transforms/FunctionImport/funcimport_forcecold.ll
  LLVM :: Transforms/FunctionImport/funcimport_forcecold_samplepgo.ll
  LLVM :: Transforms/FunctionImport/funcimport_resolved.ll
  LLVM :: Transforms/FunctionImport/hotness_based_import.ll
  LLVM :: Transforms/FunctionImport/import_stats.ll
  LLVM :: Transforms/PGOProfile/thinlto_cspgo_gen.ll
  LLVM :: Transforms/PGOProfile/thinlto_cspgo_use.ll
  LLVM :: Transforms/PGOProfile/thinlto_indirect_call_promotion.ll
  LLVM :: Transforms/PGOProfile/thinlto_samplepgo_icp.ll
  LLVM :: Transforms/PGOProfile/thinlto_samplepgo_icp2.ll
  LLVM :: Transforms/PGOProfile/thinlto_samplepgo_icp3.ll
  LLVM :: tools/llvm-lto2/X86/pipeline.ll
  LLVM :: tools/llvm-lto2/X86/stats-file-option.ll
  LLVM :: tools/llvm-split/blockaddress.ll

I believe I removed from the list the tests that always fail for me because I use NFS pretty much always. I may have missed one or two.



================
Comment at: llvm/lib/Bitcode/Reader/BitcodeReader.cpp:5307
   return materializeForwardReferencedFunctions();
 }
 
----------------
andrew.w.kaylor wrote:
> mehdi_amini wrote:
> > I think you need to call the new upgrade function from here as well.
> > 
> OK, thanks. I wasn't clear how the materialize stuff works. Is there some different code path that would get me here? My test is passing with the code as is, so does that mean I need an additional test?
Yes, it looks like {Thin,}LTO is relevant plus others. See the attached list.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D70096/new/

https://reviews.llvm.org/D70096





More information about the llvm-commits mailing list