[llvm] 0426e28 - [NFC][StackSafety] Move out sort from the loop

Matt Morehouse via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 14 08:43:57 PDT 2020


Reverted in 891b2be85d5f8b271c7440b51f7d463fb3e75007 due to ASan failure:
http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/44915

FAIL: LLVM :: Bitcode/thinlto-function-summary-paramaccess.ll (6675 of 38879)
******************** TEST 'LLVM ::
Bitcode/thinlto-function-summary-paramaccess.ll' FAILED
********************
Script:
--
: 'RUN: at line 4';
/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/opt -S
-passes="print<stack-safety-local>" -disable-output <
/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Bitcode/thinlto-function-summary-paramaccess.ll
2>&1 | /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/FileCheck
/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Bitcode/thinlto-function-summary-paramaccess.ll
--check-prefixes=SSI
: 'RUN: at line 6';
/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/opt
-module-summary
/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Bitcode/thinlto-function-summary-paramaccess.ll
-o /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/test/Bitcode/Output/thinlto-function-summary-paramaccess.ll.tmp.bc:
'RUN: at line 7';
/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/llvm-bcanalyzer
-dump /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/test/Bitcode/Output/thinlto-function-summary-paramaccess.ll.tmp.bc
| /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/FileCheck
/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Bitcode/thinlto-function-summary-paramaccess.ll
-check-prefixes=BC
: 'RUN: at line 9';
/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/opt
-module-summary
/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Bitcode/Inputs/thinlto-function-summary-paramaccess.ll
-o /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/test/Bitcode/Output/thinlto-function-summary-paramaccess.ll.tmp2.bc
: 'RUN: at line 11';
/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/llvm-lto
-thinlto -o /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/test/Bitcode/Output/thinlto-function-summary-paramaccess.ll.tmp
/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/test/Bitcode/Output/thinlto-function-summary-paramaccess.ll.tmp.bc
/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/test/Bitcode/Output/thinlto-function-summary-paramaccess.ll.tmp2.bc
: 'RUN: at line 13';
/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/llvm-dis -o -
/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/test/Bitcode/Output/thinlto-function-summary-paramaccess.ll.tmp.thinlto.bc
| /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/FileCheck
/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Bitcode/thinlto-function-summary-paramaccess.ll
--check-prefix=DCO
: 'RUN: at line 15';
/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/llvm-dis -o -
/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/test/Bitcode/Output/thinlto-function-summary-paramaccess.ll.tmp.thinlto.bc
| /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/llvm-as -o
- | /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/llvm-dis
-o - | /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/FileCheck
/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Bitcode/thinlto-function-summary-paramaccess.ll
--check-prefix=DCO
: 'RUN: at line 17';
/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/llvm-bcanalyzer
-dump /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/test/Bitcode/Output/thinlto-function-summary-paramaccess.ll.tmp.thinlto.bc
| /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/FileCheck
/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Bitcode/thinlto-function-summary-paramaccess.ll
--check-prefix=COMBINED
: 'RUN: at line 19';
/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/llvm-dis -o -
/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/test/Bitcode/Output/thinlto-function-summary-paramaccess.ll.tmp.bc
| /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/FileCheck
/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Bitcode/thinlto-function-summary-paramaccess.ll
--check-prefix=DIS
: 'RUN: at line 21';
/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/llvm-dis -o -
/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/test/Bitcode/Output/thinlto-function-summary-paramaccess.ll.tmp.bc
| /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/llvm-as -o
- | /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/llvm-dis
-o - | /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/FileCheck
/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Bitcode/thinlto-function-summary-paramaccess.ll
--check-prefix=DIS
: 'RUN: at line 23';
/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/opt
-thinlto-bc /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Bitcode/thinlto-function-summary-paramaccess.ll
-o /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/test/Bitcode/Output/thinlto-function-summary-paramaccess.ll.tmp.bc
: 'RUN: at line 24';
/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/llvm-bcanalyzer
-dump /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/test/Bitcode/Output/thinlto-function-summary-paramaccess.ll.tmp.bc
| /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/FileCheck
/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Bitcode/thinlto-function-summary-paramaccess.ll
-check-prefixes=BC
: 'RUN: at line 26';
/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/llvm-dis -o -
/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/test/Bitcode/Output/thinlto-function-summary-paramaccess.ll.tmp.bc
| /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/FileCheck
/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Bitcode/thinlto-function-summary-paramaccess.ll
--check-prefix=DIS
: 'RUN: at line 28';
/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/llvm-dis -o -
/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/test/Bitcode/Output/thinlto-function-summary-paramaccess.ll.tmp.bc
| /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/llvm-as -o
- | /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/llvm-dis
-o - | /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/FileCheck
/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Bitcode/thinlto-function-summary-paramaccess.ll
--check-prefix=DIS
--
Exit Code: 1

Command Output (stderr):
--
=================================================================
==58783==ERROR: AddressSanitizer: container-overflow on address
0x606000016008 at pc 0x000004738cf5 bp 0x7ffd1a6fc850 sp
0x7ffd1a6fc848
READ of size 8 at 0x606000016008 thread T0
    #0 0x4738cf4 in llvm::StackSafetyInfo::getParamAccesses() const
/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Analysis/StackSafetyAnalysis.cpp:816:5
    #1 0x453cb01 in computeFunctionSummary(llvm::ModuleSummaryIndex&,
llvm::Module const&, llvm::Function const&, llvm::BlockFrequencyInfo*,
llvm::ProfileSummaryInfo*, llvm::DominatorTree&, bool,
llvm::DenseSet<unsigned long, llvm::DenseMapInfo<unsigned long> >&,
bool, std::__1::function<llvm::StackSafetyInfo const* (llvm::Function
const&)>) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp:475:26
    #2 0x4533558 in llvm::buildModuleSummaryIndex(llvm::Module const&,
std::__1::function<llvm::BlockFrequencyInfo* (llvm::Function const&)>,
llvm::ProfileSummaryInfo*, std::__1::function<llvm::StackSafetyInfo
const* (llvm::Function const&)>)
/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp:763:5
    #3 0x45423b8 in
llvm::ModuleSummaryIndexWrapperPass::runOnModule(llvm::Module&)
/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp:884:17
    #4 0x5ad22dd in runOnModule
/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1702:27
    #5 0x5ad22dd in llvm::legacy::PassManagerImpl::run(llvm::Module&)
/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:614:44
    #6 0xa8bd7e in main
/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/tools/opt/opt.cpp:1001:12
    #7 0x7fafefae509a in __libc_start_main
(/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
    #8 0x9a0d09 in _start
(/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/opt+0x9a0d09)

0x606000016008 is located 40 bytes inside of 64-byte region
[0x606000015fe0,0x606000016020)
allocated by thread T0 here:
    #0 0xa4530d in operator new(unsigned long)
/b/s/w/ir/cache/builder/src/third_party/llvm/compiler-rt/lib/asan/asan_new_delete.cpp:99:3
    #1 0x475499c in __libcpp_allocate
/b/sanitizer-x86_64-linux-fast/build/libcxx_build_asan/include/c++/v1/new:253:10
    #2 0x475499c in allocate
/b/sanitizer-x86_64-linux-fast/build/libcxx_build_asan/include/c++/v1/memory:1789:34
    #3 0x475499c in allocate
/b/sanitizer-x86_64-linux-fast/build/libcxx_build_asan/include/c++/v1/memory:1525:21
    #4 0x475499c in __split_buffer
/b/sanitizer-x86_64-linux-fast/build/libcxx_build_asan/include/c++/v1/__split_buffer:318:29
    #5 0x475499c in void
std::__1::vector<llvm::FunctionSummary::ParamAccess,
std::__1::allocator<llvm::FunctionSummary::ParamAccess>
>::__emplace_back_slow_path<unsigned int const&, llvm::ConstantRange
const&>(unsigned int const&, llvm::ConstantRange const&)
/b/sanitizer-x86_64-linux-fast/build/libcxx_build_asan/include/c++/v1/vector:1668:49
    #6 0x473821a in emplace_back<const unsigned int &, const
llvm::ConstantRange &>
/b/sanitizer-x86_64-linux-fast/build/libcxx_build_asan/include/c++/v1/vector:1690:9
    #7 0x473821a in llvm::StackSafetyInfo::getParamAccesses() const
/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Analysis/StackSafetyAnalysis.cpp:800:19
    #8 0x453cb01 in computeFunctionSummary(llvm::ModuleSummaryIndex&,
llvm::Module const&, llvm::Function const&, llvm::BlockFrequencyInfo*,
llvm::ProfileSummaryInfo*, llvm::DominatorTree&, bool,
llvm::DenseSet<unsigned long, llvm::DenseMapInfo<unsigned long> >&,
bool, std::__1::function<llvm::StackSafetyInfo const* (llvm::Function
const&)>) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp:475:26
    #9 0x4533558 in llvm::buildModuleSummaryIndex(llvm::Module const&,
std::__1::function<llvm::BlockFrequencyInfo* (llvm::Function const&)>,
llvm::ProfileSummaryInfo*, std::__1::function<llvm::StackSafetyInfo
const* (llvm::Function const&)>)
/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp:763:5
    #10 0x45423b8 in
llvm::ModuleSummaryIndexWrapperPass::runOnModule(llvm::Module&)
/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp:884:17
    #11 0x5ad22dd in runOnModule
/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1702:27
    #12 0x5ad22dd in llvm::legacy::PassManagerImpl::run(llvm::Module&)
/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:614:44
    #13 0xa8bd7e in main
/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/tools/opt/opt.cpp:1001:12
   #14 0x7fafefae509a in __libc_start_main
(/lib/x86_64-linux-gnu/libc.so.6+0x2409a)

HINT: if you don't care about these errors you may set
ASAN_OPTIONS=detect_container_overflow=0.
If you suspect a false positive see also:
https://github.com/google/sanitizers/wiki/AddressSanitizerContainerOverflow.
SUMMARY: AddressSanitizer: container-overflow
/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Analysis/StackSafetyAnalysis.cpp:816:5
in llvm::StackSafetyInfo::getParamAccesses() const
Shadow bytes around the buggy address:
  0x0c0c7fffabb0: fa fa fa fa 00 00 00 00 00 00 00 fa fa fa fa fa
  0x0c0c7fffabc0: 00 00 00 00 00 00 00 fa fa fa fa fa fd fd fd fd
  0x0c0c7fffabd0: fd fd fd fd fa fa fa fa fd fd fd fd fd fd fd fa
  0x0c0c7fffabe0: fa fa fa fa fd fd fd fd fd fd fd fd fa fa fa fa
  0x0c0c7fffabf0: 00 00 00 00 00 00 00 fa fa fa fa fa fc fc fc fc
=>0x0c0c7fffac00: fc[fc]fc fc fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c0c7fffac10: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c0c7fffac20: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c0c7fffac30: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c0c7fffac40: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c0c7fffac50: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07
  Heap left redzone:       fa
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
  Shadow gap:              cc
==58783==ABORTING

--


On Fri, Aug 14, 2020 at 4:19 AM Vitaly Buka via llvm-commits <
llvm-commits at lists.llvm.org> wrote:

>
> Author: Vitaly Buka
> Date: 2020-08-14T04:19:10-07:00
> New Revision: 0426e28419799c35cf52fe3d773c5bab9928c699
>
> URL:
> https://github.com/llvm/llvm-project/commit/0426e28419799c35cf52fe3d773c5bab9928c699
> DIFF:
> https://github.com/llvm/llvm-project/commit/0426e28419799c35cf52fe3d773c5bab9928c699.diff
>
> LOG: [NFC][StackSafety] Move out sort from the loop
>
> Added:
>
>
> Modified:
>     llvm/lib/Analysis/StackSafetyAnalysis.cpp
>     llvm/test/Bitcode/thinlto-function-summary-paramaccess.ll
>
> Removed:
>
>
>
>
> ################################################################################
> diff  --git a/llvm/lib/Analysis/StackSafetyAnalysis.cpp
> b/llvm/lib/Analysis/StackSafetyAnalysis.cpp
> index 0baf0c2d54b2..15488c3f18d0 100644
> --- a/llvm/lib/Analysis/StackSafetyAnalysis.cpp
> +++ b/llvm/lib/Analysis/StackSafetyAnalysis.cpp
> @@ -812,11 +812,11 @@ StackSafetyInfo::getParamAccesses() const {
>        }
>        Param.Calls.emplace_back(C.first.ParamNo, C.first.Callee->getGUID(),
>                                 C.second);
> -      llvm::sort(Param.Calls, [](const FunctionSummary::ParamAccess::Call
> &L,
> -                                 const FunctionSummary::ParamAccess::Call
> &R) {
> -        return std::tie(L.ParamNo, L.Callee) < std::tie(R.ParamNo,
> R.Callee);
> -      });
>      }
> +    sort(Param.Calls, [](const FunctionSummary::ParamAccess::Call &L,
> +                         const FunctionSummary::ParamAccess::Call &R) {
> +      return std::tie(L.ParamNo, L.Callee) < std::tie(R.ParamNo,
> R.Callee);
> +    });
>    }
>    return ParamAccesses;
>  }
>
> diff  --git a/llvm/test/Bitcode/thinlto-function-summary-paramaccess.ll
> b/llvm/test/Bitcode/thinlto-function-summary-paramaccess.ll
> index 1757173ec52b..6351133ce3d0 100644
> --- a/llvm/test/Bitcode/thinlto-function-summary-paramaccess.ll
> +++ b/llvm/test/Bitcode/thinlto-function-summary-paramaccess.ll
> @@ -230,7 +230,7 @@ entry:
>  }
>
>  ; SSI-LABEL: for function 'CallMany2'
> -; SSI: p[]: empty-set, @Callee(arg0, [-715,125))
> +; SSI: p[]: empty-set, @Callee(arg0, [-715,125)), @Callee2(arg1,
> [-33,-32))
>  ; BC-NEXT: <PARAM_ACCESS op0=0 op1=0 op2=0 op3=2 op4=0 op5=[[CALLEE]]
> op6=1431 op7=250 op8=1 op9=[[CALLEE2:-?[0-9]+]] op10=67 op11=65/>
>  ; BC-NEXT: <PERMODULE
>  ; DIS-DAG: = gv: (name: "CallMany2", summaries: {{.*}} calls: ((callee:
> ^{{.*}}), (callee: ^{{.*}})), params: ((param: 0, offset: [0, -1], calls:
> ((callee: ^{{.*}}, param: 0, offset: [-715, 124]), (callee: ^{{.*}}, param:
> 1, offset: [-33, -33]))))))) ; guid = 16654048340802466690
>
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200814/3aa54794/attachment.html>


More information about the llvm-commits mailing list