[llvm-bugs] [Bug 45656] New: Wrong alignment of load instruction when load vector cast from other pointer

2020-04-24 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=45656

Bug ID: 45656
   Summary: Wrong alignment of load instruction when load vector
cast from other pointer
   Product: clang
   Version: unspecified
  Hardware: PC
OS: All
Status: NEW
  Severity: enhancement
  Priority: P
 Component: Frontend
  Assignee: unassignedclangb...@nondot.org
  Reporter: ju...@linux.alibaba.com
CC: llvm-bugs@lists.llvm.org, neeil...@live.com,
richard-l...@metafoo.co.uk

see testcase in https://godbolt.org/z/Fz3vG4 we cast void* ptr to v8si*, and
then read it. 

It seems clang generates the load instruction with alignment of vector type,
not the element type which is wrong.

when we build with march=core-avx2, llvm emits vmovdqa which may cause seg
fault when ptr is not 32byte align.

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 45657] New: Bad comment indentation before ifdef after braceless if

2020-04-24 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=45657

Bug ID: 45657
   Summary: Bad comment indentation before ifdef after braceless
if
   Product: clang
   Version: trunk
  Hardware: PC
OS: Linux
Status: NEW
  Severity: enhancement
  Priority: P
 Component: Formatter
  Assignee: unassignedclangb...@nondot.org
  Reporter: h...@chromium.org
CC: djas...@google.com, kli...@google.com,
llvm-bugs@lists.llvm.org

Example input:

$ cat /tmp/a.cc
void f() {
  if (foo)
bar();
  // Comment
#if BAZ
  baz();
#endif
}

Example output:

$ bin/clang-format < /tmp/a.cc
void f() {
  if (foo)
bar();
// Comment
#if BAZ
  baz();
#endif
}

Note that the comment is now overly indented. Inserting a new line after
"baz()" doesn't change it.

(I was using clang-format built from d254b50b2b5b22368780c6003c419ffa1e23fa93)

This was originally filed in Chromium:
https://bugs.chromium.org/p/chromium/issues/detail?id=1074113

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 45656] Wrong alignment of load instruction when load vector cast from other pointer

2020-04-24 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=45656

Roman Lebedev  changed:

   What|Removed |Added

 Resolution|--- |INVALID
 CC||lebedev...@gmail.com
 Status|NEW |RESOLVED

--- Comment #1 from Roman Lebedev  ---
(In reply to JunMa from comment #0)
> see testcase in https://godbolt.org/z/Fz3vG4 we cast void* ptr to v8si*, and
> then read it. 
> 
> It seems clang generates the load instruction with alignment of vector type,
> not the element type which is wrong.
> 
> when we build with march=core-avx2, llvm emits vmovdqa which may cause seg
> fault when ptr is not 32byte align.

Yep, and that is UB.
You may want to specify that the type is underaligned,
e.g. https://godbolt.org/z/8kC6rt

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 42889] Sanitizer + -O3 stalls in LLVM backend

2020-04-24 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=42889

Dominik Strasser  changed:

   What|Removed |Added

 Resolution|--- |FIXED
 Status|NEW |RESOLVED

--- Comment #3 from Dominik Strasser  ---
Works fine in clang 10.

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 45658] New: Linker error when using LTO with Fuzzer on Windos

2020-04-24 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=45658

Bug ID: 45658
   Summary: Linker error when using LTO with Fuzzer on Windos
   Product: clang
   Version: trunk
  Hardware: PC
OS: Windows NT
Status: NEW
  Severity: enhancement
  Priority: P
 Component: LLVM Codegen
  Assignee: unassignedclangb...@nondot.org
  Reporter: markus.boec...@gmail.com
CC: llvm-bugs@lists.llvm.org, neeil...@live.com,
richard-l...@metafoo.co.uk

When using libFuzzer on Windows using clang-cl and LTO (both full and thin) the
linking stage later fails with undefined reference to __sancov_lowest_stack. 

Tested cpp file:
#include 
#include 

extern "C" int LLVMFuzzerTestOneInput(const std::uint8_t* data, std::size_t
size)
{
std::string s(size,' ');
std::memcpy(s.data(),data,size);
std::cout << s;
return 0;
}

CMD:
Input: clang-cl /MT -fsanitize=fuzzer -fuse-ld=lld -flto test.cpp -std:c++17

lld-link: error: undefined symbol: __sancov_lowest_stack   
>>> referenced by test.cpp 
   
>>>   C:\Users\Markus\AppData\Local\Temp\test-bae0e8.obj   
clang-cl: error: linker command failed
with exit code 1 (use -v to see invocation)

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 45659] New: SingleSource/UnitTests/Vector/AVX512F/Vector-AVX512F-convert missing link symbol "llvm.x86.avx512.mask.vcvtph2ps.512.v16f32.v16i16.v16f32.i16.i32"

2020-04-24 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=45659

Bug ID: 45659
   Summary: SingleSource/UnitTests/Vector/AVX512F/Vector-AVX512F-c
onvert missing link symbol
"llvm.x86.avx512.mask.vcvtph2ps.512.v16f32.v16i16.v16f
32.i16.i32"
   Product: Test Suite
   Version: trunk
  Hardware: PC
OS: All
Status: NEW
  Severity: enhancement
  Priority: P
 Component: Programs Tests
  Assignee: unassignedb...@nondot.org
  Reporter: l...@meinersbur.de
CC: craig.top...@gmail.com, ilia.tara...@intel.com,
llvm-bugs@lists.llvm.org, llvm-...@redking.me.uk

Using latest clang 500d378ee5064274ed397b2b904e34c7dae496dd. AFAIK,
"llvm.x86.avx512.mask.vcvtph2ps.512.v16f32.v16i16.v16f32.i16.i32" is not
supposed to emitted as a library symbol.

$ bin/clang --version
clang version 11.0.0 (/tmp/persistent/llvm-src/clang
500d378ee5064274ed397b2b904e34c7dae496dd)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /tmp/persistent/llvm-build/bin


[1/2] Linking C executable
SingleSource/UnitTests/Vector/AVX512F/Vector-AVX512F-convert
FAILED: SingleSource/UnitTests/Vector/AVX512F/Vector-AVX512F-convert
: && /tmp/runci_temp-iat6b73j/testsuite-build/tools/timeit --summary
SingleSource/UnitTests/Vector/AVX512F/Vector-AVX512F-convert.link.time
/tmp/persistent/llvm-install/bin/clang -O3 -DNDEBUG  
SingleSource/UnitTests/Vector/AVX512F/CMakeFiles/Vector-AVX512F-convert.dir/convert.c.o
 -o SingleSource/UnitTests/Vector/AVX512F/Vector-AVX512F-convert  -lm && cd
/tmp/runci_temp-iat6b73j/testsuite-build/SingleSource/UnitTests/Vector/AVX512F
&& /home/meinersbur/install/cmake/release/bin/cmake -E create_symlink
/tmp/persistent/testsuite-src/SingleSource/UnitTests/Vector/AVX512F/convert.reference_output
/tmp/runci_temp-iat6b73j/testsuite-build/SingleSource/UnitTests/Vector/AVX512F/convert.reference_output
SingleSource/UnitTests/Vector/AVX512F/CMakeFiles/Vector-AVX512F-convert.dir/convert.c.o:
In function `float16_converts':
convert.c:(.text+0x268): undefined reference to
`llvm.x86.avx512.mask.vcvtph2ps.512.v16f32.v16i16.v16f32.i16.i32'
convert.c:(.text+0x2c9): undefined reference to
`llvm.x86.avx512.mask.vcvtph2ps.512.v16f32.v16i16.v16f32.i16.i32'
convert.c:(.text+0x324): undefined reference to
`llvm.x86.avx512.mask.vcvtph2ps.512.v16f32.v16i16.v16f32.i16.i32'
clang-11: error: linker command failed with exit code 1 (use -v to see
invocation)
ninja: build stopped: subcommand failed.

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 45660] New: [AMDGPU][MC][GFX9+] Encoding of op_sel_hi for VOP3P inline constants does not match sp3

2020-04-24 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=45660

Bug ID: 45660
   Summary: [AMDGPU][MC][GFX9+] Encoding of op_sel_hi for VOP3P
inline constants does not match sp3
   Product: libraries
   Version: trunk
  Hardware: All
OS: All
Status: NEW
  Severity: normal
  Priority: P
 Component: Backend: AMDGPU
  Assignee: unassignedb...@nondot.org
  Reporter: dpreobrazhen...@luxoft.com
CC: llvm-bugs@lists.llvm.org

This issue has recently been found by Ilya Perminov.

In short, sp3 and llvm encode op_sel_hi for VOP3P inline constants differently.

For example, sp3 generates the same code for the following lines (gfx9):

  v_pk_fma_f16  v0, v1, -1.0, v3   // D38E4000 0C0DE701
  v_pk_fma_f16  v0, v1, -1.0, v3 op_sel_hi:[1,1,1] // D38E4000 0C0DE701
  v_pk_fma_f16  v0, v1, -1.0, v3 op_sel_hi:[1,0,1] // D38E4000 0C0DE701

In other words, it silently encodes op_sel_hi:[1,0,1] regardless of what has
been specified in the code. All 3 cases result in the following computations:

  v0.hi = vi.hi * -1.0 + v3.hi
  v0.lo = vi.lo * -1.0 + v3.lo

In contrast, llvm encodes op_sel_hi specified in the code. When omitted, it
results in selection of high 16 bits of -1.0 inline constant for computation of
high bits of the result.

  v_pk_fma_f16 v0, v1, -1.0, v3   ;
[0x00,0x40,0x8e,0xd3,0x01,0xe7,0x0d,0x1c]
  v_pk_fma_f16 v0, v1, -1.0, v3 op_sel_hi:[1,1,1] ;
[0x00,0x40,0x8e,0xd3,0x01,0xe7,0x0d,0x1c]
  v_pk_fma_f16 v0, v1, -1.0, v3 op_sel_hi:[1,0,1] ;
[0x00,0x40,0x8e,0xd3,0x01,0xe7,0x0d,0x0c]

The last case produces the same code that sp3 does. The first two cases result
in computations different from sp3:

  v0.hi = vi.hi *  0.0 + v3.hi // Probably not what has been intended?
  v0.lo = vi.lo * -1.0 + v3.lo

Note that sp3 uses a different op_sel syntax for gfx10 but this syntax does not
allow to specify bits selection for inline constants. sp3 assembler always
selects low bits for these.

These differences between sp3 and llvm will confuse assembler users. We could
correct llvm assembler to make it behave like sp3 (at least when op_sel_hi is
omitted).

What do you think?

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 45661] New: llvm-ar works wrong with thin archives containing object files of same name

2020-04-24 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=45661

Bug ID: 45661
   Summary: llvm-ar works wrong with thin archives containing
object files of same name
   Product: lld
   Version: unspecified
  Hardware: All
OS: Linux
Status: NEW
  Severity: enhancement
  Priority: P
 Component: All Bugs
  Assignee: unassignedb...@nondot.org
  Reporter: qwertyt...@gmail.com
CC: llvm-bugs@lists.llvm.org, smithp...@googlemail.com

For simplicity, I've prepared several bash files designed to be some sort of
PoC.

0.prepare_object_files.sh
```
#!/bin/bash

mkdir -p keyboard
mkdir -p mouse

touch keyboard/click.o
touch mouse/click.o

```

1.create_thin_archive.sh
```
#!/bin/bash

# set 1st argument as binutil's ar or llvm-ar
AR="$1"

rm -f mouse/built-in.o
rm -f keyboard/built-in.o
rm -f built-in.o

$AR -rcST mouse/built-in.o mouse/click.o \
&& \
$AR -rcST keyboard/built-in.o keyboard/click.o \
&& \
$AR -rcST built-in.o mouse/built-in.o keyboard/built-in.o \
&& \
cat built-in.o
```

To prepare environment (.o files and folders) run:
```
./0.prepare_object_files.sh
```

After this, run PoC with binutil's ar:
```
./1.create_thin_archive.sh ar
```

we'll get following output:
```
!

//  34`
mouse/click.o/
keyboard/click.o/
...
```


After we run PoC with llvm-ar:
```
./1.create_thin_archive.sh llvm-ar
```

we'll get following output:
```
!

//  18`
click.o/
click.o/
...
```

And here is a problem. 
Both click.o files located at the same directory level inside of thin archive,
generated by llvm-ar.

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] Issue 21851 in oss-fuzz: llvm:clang-format-fuzzer: ASSERT: Shift >= 0

2020-04-24 Thread ClusterFuzz-External via monorail via llvm-bugs
Updates:
Labels: ClusterFuzz-Verified
Status: Verified

Comment #1 on issue 21851 by ClusterFuzz-External: llvm:clang-format-fuzzer: 
ASSERT: Shift >= 0
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=21851#c1

ClusterFuzz testcase 5189049418776576 is verified as fixed in 
https://oss-fuzz.com/revisions?job=libfuzzer_asan_llvm&range=202004230249:202004240246

If this is incorrect, please file a bug on 
https://github.com/google/oss-fuzz/issues/new

-- 
You received this message because:
  1. You were specifically CC'd on the issue

You may adjust your notification preferences at:
https://bugs.chromium.org/hosting/settings

Reply to this email to add a comment.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] Issue 21858 in oss-fuzz: llvm:llvm-opt-fuzzer--x86_64-loop_vectorize: Null-dereference READ in llvm::InnerLoopVectorizer::getOrCreateVectorValue

2020-04-24 Thread ClusterFuzz-External via monorail via llvm-bugs
Status: New
Owner: 
CC: k...@google.com, masc...@google.com, jdevlieg...@apple.com, 
igm...@gmail.com, d...@google.com, mit...@google.com, bigchees...@gmail.com, 
eney...@google.com, llvm-b...@lists.llvm.org, j...@chromium.org, 
v...@apple.com, mitchphi...@outlook.com, xpl...@gmail.com, akils...@apple.com 
Labels: ClusterFuzz Reproducible Stability-Memory-MemorySanitizer 
Engine-libfuzzer OS-Linux Proj-llvm Reported-2020-04-24
Type: Bug

New issue 21858 by ClusterFuzz-External: 
llvm:llvm-opt-fuzzer--x86_64-loop_vectorize: Null-dereference READ in 
llvm::InnerLoopVectorizer::getOrCreateVectorValue
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=21858

Detailed Report: https://oss-fuzz.com/testcase?key=4917131507662848

Project: llvm
Fuzzing Engine: libFuzzer
Fuzz Target: llvm-opt-fuzzer--x86_64-loop_vectorize
Job Type: libfuzzer_msan_llvm
Platform Id: linux

Crash Type: Null-dereference READ
Crash Address: 0x
Crash State:
  llvm::InnerLoopVectorizer::getOrCreateVectorValue
  llvm::VPTransformState::get
  llvm::InnerLoopVectorizer::widenInstruction
  
Sanitizer: memory (MSAN)

Regressed: 
https://oss-fuzz.com/revisions?job=libfuzzer_msan_llvm&range=202004230249:202004240246

Reproducer Testcase: https://oss-fuzz.com/download?testcase_id=4917131507662848

Issue filed automatically.

See https://google.github.io/oss-fuzz/advanced-topics/reproducing for 
instructions to reproduce this bug locally.
When you fix this bug, please
  * mention the fix revision(s).
  * state whether the bug was a short-lived regression or an old bug in any 
stable releases.
  * add any other useful information.
This information can help downstream consumers.

If you need to contact the OSS-Fuzz team with a question, concern, or any other 
feedback, please file an issue at https://github.com/google/oss-fuzz/issues. 
Comments on individual Monorail issues are not monitored.

-- 
You received this message because:
  1. You were specifically CC'd on the issue

You may adjust your notification preferences at:
https://bugs.chromium.org/hosting/settings

Reply to this email to add a comment.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 45510] Failure to optimize certain kind of always-true comparisons

2020-04-24 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=45510

Sanjay Patel  changed:

   What|Removed |Added

 Resolution|--- |FIXED
 Fixed By Commit(s)||e86eff0e82d1, 62da6ecea298
 Status|NEW |RESOLVED

--- Comment #4 from Sanjay Patel  ---
We settled on 2 different patches to solve this generally:
https://reviews.llvm.org/rGe86eff0e82d1
https://reviews.llvm.org/rG62da6ecea298

So marking as fixed.

However, there is a known regression with the 2nd patch as mentioned here:
https://reviews.llvm.org/D78582

I'm still trying to repro that or figure out what went wrong from that diff. 

If we need to revert, then we should reopen this bug.

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 45662] New: FileCheck reports wrong directive on failure

2020-04-24 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=45662

Bug ID: 45662
   Summary: FileCheck reports wrong directive on failure
   Product: Test Suite
   Version: trunk
  Hardware: PC
OS: Windows NT
Status: NEW
  Severity: enhancement
  Priority: P
 Component: lit
  Assignee: unassignedb...@nondot.org
  Reporter: paul_robin...@playstation.sony.com
CC: dan...@zuster.org, llvm-bugs@lists.llvm.org

F:\scratch\Filecheck-bug>type test.txt
100
200
# A: {{1}}00
# B-NOT: {{2}}00

F:\scratch\Filecheck-bug>d:\upstream\nbuild\bin\FileCheck.exe test.txt
--input-file test.txt --check-prefixes=A,B
test.txt:4:10: error: A-NOT: excluded string found in input
# B-NOT: {{2}}00
 ^
test.txt:2:1: note: found here
200
^~~


Clearly the mismatch should report B-NOT rather than A-NOT.

This is with HEAD at de94715b64ba048728cb1c4ba88a5ac51066d61b
(last Friday).

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 45478] Incorrect transformation of minnum with nnan flag

2020-04-24 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=45478

Sanjay Patel  changed:

   What|Removed |Added

 Status|CONFIRMED   |RESOLVED
 Resolution|--- |FIXED
 Fixed By Commit(s)||e4175ff5256

--- Comment #10 from Sanjay Patel  ---
Should be fixed with:
https://reviews.llvm.org/rGe4175ff52561

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 45663] New: C++20 template Constraints doesn't evaluate the current calling context

2020-04-24 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=45663

Bug ID: 45663
   Summary: C++20 template Constraints doesn't evaluate the
current calling context
   Product: clang
   Version: 10.0
  Hardware: All
OS: All
Status: NEW
  Severity: normal
  Priority: P
 Component: C++2a
  Assignee: unassignedclangb...@nondot.org
  Reporter: sharkli...@gmail.com
CC: blitzrak...@gmail.com, erik.pilking...@gmail.com,
llvm-bugs@lists.llvm.org, richard-l...@metafoo.co.uk

Created attachment 23399
  --> https://bugs.llvm.org/attachment.cgi?id=23399&action=edit
Self-describing source code copy, from godbolt.org link.Feel free to test the
code

When a template instantiation attempt occur, the compiler seems to cache the
resulting instantiation attempt details.

The contraints evaluation along with the template are not further evaluated
correctly when further template instantiations are called, even if constraint
argument's context has changed.

This lead to valid constraint evaluation failure.
And so, it fails to instantiate specialized template, or function template
overload.


The details of such context change evaluation failure can be seen on this link
: https://godbolt.org/z/QMU6YC
(This is MAtt Godbolt's website 'Compiler Explorer')

or a copy code from that link below as an attachment.

It explains step by step my testing context, and what I expected.

This testing context focus on :
- a concept testing inheritance (with pointer conversion requires),
- a template class 'Zeta' with template constructor overload using this concept
as a constraint,

- two classes 'Alpha' and 'Beta' with inheritance relationship, but the 'Beta'
derived class is forward declared,

- some 'Ss' class definitions with a 'Zeta' data member,
declaring two constructors using 'Zeta' and 'Zeta' as arguments,
causing 'Zeta' constrained template constructor to be evaluated as a conversion
constructor, while 'Beta' is still not defined,
Note : 'Zeta' matching type argument copy-constructor is intended.

- 'Beta' defined as derived from 'Alpha' and using 'Ss' class definition (so it
need to be defined late),

- valid 'Ss' constructors definition : using 'Zeta' to 'Zeta'
constrained template conversion-constructor instantiation, as 'Beta' is now
defined as inheriting 'Alpha'.


Problem summary :
- 'Beta' inheriting 'Alpha' Constraint evaluate to false, when 'Beta' is
already defined as inheriting 'Alpha'.

Expected :
- 'Zeta' to 'Zeta' constrained conversion overload is selected, as
constraints are satisfied.

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 41285] loop-extract-single makes function broken with "opt -loop-extract-single"

2020-04-24 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=41285

Ehud Katz  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||ehudk...@gmail.com
 Resolution|--- |DUPLICATE

--- Comment #1 from Ehud Katz  ---


*** This bug has been marked as a duplicate of bug 42451 ***

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 40900] opt cannot terminate with "opt -simplifycfg -loop-extract"

2020-04-24 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=40900

Ehud Katz  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||ehudk...@gmail.com
 Resolution|--- |DUPLICATE

--- Comment #1 from Ehud Katz  ---


*** This bug has been marked as a duplicate of bug 3082 ***

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 45659] SingleSource/UnitTests/Vector/AVX512F/Vector-AVX512F-convert missing link symbol "llvm.x86.avx512.mask.vcvtph2ps.512.v16f32.v16i16.v16f32.i16.i32"

2020-04-24 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=45659

Craig Topper  changed:

   What|Removed |Added

 Fixed By Commit(s)||0ed5b0d517cb781d4949cc4bfa9
   ||854bc276ee13a
 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #3 from Craig Topper  ---
Should be fixed after 0ed5b0d517cb781d4949cc4bfa9854bc276ee13a

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 40950] opt cannot terminate with "opt -loop-rotate -loop-extract"

2020-04-24 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=40950

Ehud Katz  changed:

   What|Removed |Added

 Resolution|--- |DUPLICATE
 Status|NEW |RESOLVED
 CC||ehudk...@gmail.com

--- Comment #1 from Ehud Katz  ---


*** This bug has been marked as a duplicate of bug 3082 ***

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 40937] opt cannot terminate with "opt -instcombine -structurizecfg -loop-extract -loop-rotate -newgvn -loop-versioning -loop-extract"

2020-04-24 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=40937

Ehud Katz  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||ehudk...@gmail.com
 Resolution|--- |DUPLICATE

--- Comment #1 from Ehud Katz  ---


*** This bug has been marked as a duplicate of bug 3082 ***

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 40938] opt crashes with "opt -newgvn -inline -licm -loop-extract -ipsccp -adce" : Assertion `CallSites.empty() && "Dangling pointers found in call sites map"' failed.

2020-04-24 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=40938

Ehud Katz  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED
 CC||ehudk...@gmail.com

--- Comment #1 from Ehud Katz  ---
Fixed in LLVM 9.0.0 release (https://github.com/llvm-mirror/llvm
c62b24f070c9a4bb1a76409e623042a740cac4cd)

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 41287] opt crashes with "opt -loop-extract-single -adce"

2020-04-24 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=41287

Ehud Katz  changed:

   What|Removed |Added

 CC||ehudk...@gmail.com
 Resolution|--- |FIXED
 Status|NEW |RESOLVED

--- Comment #1 from Ehud Katz  ---
Fixed in LLVM 9.0.0 release (https://github.com/llvm-mirror/llvm
c62b24f070c9a4bb1a76409e623042a740cac4cd)

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 40895] Consuming too much memory for "opt -mergereturn -loop-extract"

2020-04-24 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=40895

Ehud Katz  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |DUPLICATE
 CC||ehudk...@gmail.com

--- Comment #1 from Ehud Katz  ---


*** This bug has been marked as a duplicate of bug 3082 ***

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 7829] -loop-extract crash "Invalid DominatorTree info!"

2020-04-24 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=7829

Ehud Katz  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||ehudk...@gmail.com
 Resolution|--- |FIXED

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 42016] opt crashes with "opt -early-cse -indvars -sroa -lowerswitch -loop-unswitch -licm -loop-extract-single -inline"

2020-04-24 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=42016

Ehud Katz  changed:

   What|Removed |Added

 Resolution|--- |FIXED
 Status|NEW |RESOLVED
 Fixed By Commit(s)||rL365660
 CC||ehudk...@gmail.com

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 41697] loop-extract-single makes function broken with "opt -newgvn -loop-unswitch -licm -loop-extract-single"

2020-04-24 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=41697

Ehud Katz  changed:

   What|Removed |Added

 CC||ehudk...@gmail.com
 Status|NEW |RESOLVED
 Resolution|--- |DUPLICATE

--- Comment #1 from Ehud Katz  ---


*** This bug has been marked as a duplicate of bug 42451 ***

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 40899] opt crashes with "opt -sroa -lcssa -indvars": Assertion `L->isRecursivelyLCSSAForm(*DT, *LI) && "Requested to preserve LCSSA, but it's already broken."' failed.

2020-04-24 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=40899

Ehud Katz  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||ehudk...@gmail.com
 Resolution|--- |FIXED

--- Comment #2 from Ehud Katz  ---
Fixed in LLVM 9.0.0 release (https://github.com/llvm-mirror/llvm
c62b24f070c9a4bb1a76409e623042a740cac4cd)

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 41321] Module Verifier crashes with "opt -ipsccp -loop-distribute": Instruction operands must be first-class values!

2020-04-24 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=41321

Ehud Katz  changed:

   What|Removed |Added

 CC||ehudk...@gmail.com
 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #2 from Ehud Katz  ---
Fixed in LLVM 9.0.0 release (https://github.com/llvm-mirror/llvm
c62b24f070c9a4bb1a76409e623042a740cac4cd)

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 45664] New: Please merge e98f73a62907 into 10.0.1

2020-04-24 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=45664

Bug ID: 45664
   Summary: Please merge e98f73a62907 into 10.0.1
   Product: libraries
   Version: trunk
  Hardware: PC
OS: Windows NT
Status: NEW
  Severity: enhancement
  Priority: P
 Component: MC
  Assignee: unassignedb...@nondot.org
  Reporter: alexandre.ga...@ubisoft.com
CC: h...@chromium.org, llvm-bugs@lists.llvm.org
Blocks: 45309

https://reviews.llvm.org/rGe98f73a629075ae3b9c4d5317bead5a122d69865


Referenced Bugs:

https://bugs.llvm.org/show_bug.cgi?id=45309
[Bug 45309] [meta] 10.0.1 Release Blockers
-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 45666] New: [InstCombine] reduce icmp ult with or operand

2020-04-24 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=45666

Bug ID: 45666
   Summary: [InstCombine] reduce icmp ult with or operand
   Product: libraries
   Version: trunk
  Hardware: PC
OS: All
Status: NEW
  Severity: enhancement
  Priority: P
 Component: Scalar Optimizations
  Assignee: unassignedb...@nondot.org
  Reporter: spatel+l...@rotateright.com
CC: llvm-bugs@lists.llvm.org

define i1 @cmp_or_limit(i8 %x) {
  %or = or i8 %x, 5
  %cmp = icmp ult i8 %or, 43
  ret i1 %cmp
}

This can reduce to:

define i1 @cmp_or_limit(i8 %x) {
  %R = icmp ult i8 %x, 40
  ret i1 %R
}


http://volta.cs.utah.edu:8080/z/k3sykE

I think there's some leading zeros + masking relationship for those constants
that we're not getting.

The old Alive lets us specify constant preconditions. Is there an equivalent
with Alive2?

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] Issue 21866 in oss-fuzz: llvm:clang-fuzzer: Stack-overflow in clang::DiagnosticIDs::isUnrecoverable

2020-04-24 Thread ClusterFuzz-External via monorail via llvm-bugs
Status: New
Owner: 
CC: k...@google.com, masc...@google.com, jdevlieg...@apple.com, 
igm...@gmail.com, d...@google.com, mit...@google.com, bigchees...@gmail.com, 
eney...@google.com, llvm-b...@lists.llvm.org, j...@chromium.org, 
v...@apple.com, mitchphi...@outlook.com, xpl...@gmail.com, akils...@apple.com 
Labels: ClusterFuzz Stability-Memory-AddressSanitizer Reproducible 
Engine-libfuzzer OS-Linux Proj-llvm Reported-2020-04-25
Type: Bug

New issue 21866 by ClusterFuzz-External: llvm:clang-fuzzer: Stack-overflow in 
clang::DiagnosticIDs::isUnrecoverable
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=21866

Detailed Report: https://oss-fuzz.com/testcase?key=5711748507369472

Project: llvm
Fuzzing Engine: libFuzzer
Fuzz Target: clang-fuzzer
Job Type: libfuzzer_asan_llvm
Platform Id: linux

Crash Type: Stack-overflow
Crash Address: 0x7ffc5d2a9bd8
Crash State:
  clang::DiagnosticIDs::isUnrecoverable
  clang::DiagnosticIDs::ProcessDiag
  clang::DiagnosticsEngine::EmitCurrentDiagnostic
  
Sanitizer: address (ASAN)

Regressed: 
https://oss-fuzz.com/revisions?job=libfuzzer_asan_llvm&range=202004210249:202004220553

Reproducer Testcase: https://oss-fuzz.com/download?testcase_id=5711748507369472

Issue filed automatically.

See https://google.github.io/oss-fuzz/advanced-topics/reproducing for 
instructions to reproduce this bug locally.
When you fix this bug, please
  * mention the fix revision(s).
  * state whether the bug was a short-lived regression or an old bug in any 
stable releases.
  * add any other useful information.
This information can help downstream consumers.

If you need to contact the OSS-Fuzz team with a question, concern, or any other 
feedback, please file an issue at https://github.com/google/oss-fuzz/issues. 
Comments on individual Monorail issues are not monitored.

-- 
You received this message because:
  1. You were specifically CC'd on the issue

You may adjust your notification preferences at:
https://bugs.chromium.org/hosting/settings

Reply to this email to add a comment.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 45667] New: FoldBranchToCommonDest in SimplifyCFG can invalidate dbg.value operands

2020-04-24 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=45667

Bug ID: 45667
   Summary: FoldBranchToCommonDest in SimplifyCFG can invalidate
dbg.value operands
   Product: libraries
   Version: trunk
  Hardware: PC
OS: All
Status: NEW
  Severity: enhancement
  Priority: P
 Component: Transformation Utilities
  Assignee: unassignedb...@nondot.org
  Reporter: ri...@rzhou.org
CC: llvm-bugs@lists.llvm.org

Reproduction case:

Compiling the following program (https://godbolt.org/z/y2nzqR):

```
int main(int argc, char** argv) {
  bool a = false;
  bool b = false;
  bool c = false;
  [&a, &b, &c] { b = true; }();

  if (a || b || c) {
__builtin_debugtrap();
  }

  return 0;
}
```

with

```
clang++ -O1 -g -fno-exceptions -o test test.cc
```

produces incorrect DWARF debugging information for the "b" variable. This can
be seen by running the program in lldb and printing "b" at the breakpoint:

```
$ lldb ~/test
(lldb) target create ".../test"
Current executable set to '.../test' (x86_64).
(lldb) r
Process 90101 launched: '.../test' (x86_64)
Process 90101 stopped
* thread #1, name = 'test', stop reason = signal SIGTRAP
frame #0: 0x0040115a test`main(argc=,
argv=) at test.cc:12:1
   9  }
   10
   11 return 0;
-> 12   }
(lldb) p b
(bool) $0 = false
```

The LLVM IR at the goldbolt link shows the issue. When "a", "b", and "c" are
initialized to 0, the original dbg.declare for these variables is replaced with
a dbg.value:

```
...
  call void @llvm.dbg.value(metadata i8 0, metadata !18, metadata
!DIExpression()), !dbg !22
  store i8 0, i8* %a, align 1, !dbg !24, !tbaa !25
  call void @llvm.lifetime.start.p0i8(i64 1, i8* nonnull %b) #3, !dbg !29
  call void @llvm.dbg.value(metadata i8 0, metadata !20, metadata
!DIExpression()), !dbg !22
  store i8 0, i8* %b, align 1, !dbg !30, !tbaa !25
  call void @llvm.lifetime.start.p0i8(i64 1, i8* nonnull %c) #3, !dbg !31
  call void @llvm.dbg.value(metadata i8 0, metadata !21, metadata
!DIExpression()), !dbg !22
  store i8 0, i8* %c, align 1, !dbg !32, !tbaa !25
... call to lambda ...
  %4 = load i8, i8* %a, align 1, !dbg !36, !tbaa !25, !range !38
  call void @llvm.dbg.value(metadata i8 %4, metadata !18, metadata
!DIExpression()), !dbg !22
  %5 = load i8, i8* %b, align 1, !dbg !39
  %6 = or i8 %5, %4, !dbg !40
  %7 = load i8, i8* %c, align 1, !dbg !41
  %8 = or i8 %6, %7, !dbg !40
...

```

when "a" is loaded after calling the lambda, we emit an updated dbg.value for
it. However, "b" and "c" do not get one.

I into where this breaks by compiling with `-mllvm -print-after-all -mllvm
-print-before-all`, and found that there were valid-looking dbg.value
intrinsics the loads of "b" and "c" a "Simplify the CFG" phase invalidated
them, replacing them with a call like this:

```
  !2 = !{}
...
  call void @llvm.dbg.value(metadata !2, metadata !20, metadata
!DIExpression()), !dbg !30
```

Then an "Early CSE w/ MemorySSA" phase discards these intrinsics entirely, as
they fail this test:
https://github.com/llvm/llvm-project/blob/master/llvm/lib/Transforms/Utils/Local.cpp#L385

The transformation producing the invalidated dbg.value appears to be
SimplifyCFG rewriting:

```
if (a)
  if (b)
if (c) ...
```

to

```
if (a || b || c) ...
```

Looking at the code that does this,

https://github.com/llvm-mirror/llvm/blob/master/lib/Transforms/Utils/SimplifyCFG.cpp#L2731-L2749

appears to clone some instructions into a different basic block.

https://github.com/llvm-mirror/llvm/blob/master/lib/Transforms/Utils/SimplifyCFG.cpp#L2868-L2870

then clones dbg intrinsics over, but does not update their operands to point to
the appropriate cloned values.

The following patch fixes up the dbg.value operands for me and causes
correct-looking debug info to be generated:

```
diff --git a/llvm/lib/Transforms/Utils/SimplifyCFG.cpp
b/llvm/lib/Transforms/Utils/SimplifyCFG.cpp
index be5a375a2cf..73db4728ef3 100644
--- a/llvm/lib/Transforms/Utils/SimplifyCFG.cpp
+++ b/llvm/lib/Transforms/Utils/SimplifyCFG.cpp
@@ -2898,9 +2898,14 @@ bool llvm::FoldBranchToCommonDest(BranchInst *BI,
MemorySSAUpdater *MSSAU,
 // could replace PBI's branch probabilities with BI's.

 // Copy any debug value intrinsics into the end of PredBlock.
-for (Instruction &I : *BB)
-  if (isa(I))
-I.clone()->insertBefore(PBI);
+for (Instruction &I : *BB) {
+  if (isa(I)) {
+Instruction *NewI = I.clone();
+RemapInstruction(NewI, VMap,
+ RF_NoModuleLevelChanges | RF_IgnoreMissingLocals);
+NewI->insertBefore(PBI);
+  }
+}

 return true;
   }
```

Note that even with this patch, the generated DWARF information is not ideal.
"b" becomes "optimized out" at the breakpoint, even though it is on the stack.
It seems that replacing dbg.declare with dbg.value was counterproductive in
this case.

-- 
You are rec