[llvm-bugs] [Bug 42420] error in backend: Functions with 'no-prototype' attribute should not have params

2019-07-08 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=42420

Heejin Ahn  changed:

   What|Removed |Added

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

--- Comment #4 from Heejin Ahn  ---
Fixed in r365426
(https://reviews.llvm.org/rG947bfe73fc2f50300fafdf9ef7a025e7d17da30e).

-- 
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 16548] False warning: address of stack memory associated with local

2019-07-08 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=16548

Óscar Fuentes  changed:

   What|Removed |Added

 Resolution|--- |WORKSFORME
 Status|NEW |RESOLVED

--- Comment #1 from Óscar Fuentes  ---
Since long time ago my code had a work around for this issue. Tested today with
8.0.1rc and it is no longer necessary, nor the test case on this PR reproduces
the problem.

-- 
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 42550] New: Byte+shift loads are not autovectorized to movdqu on SSE4.1

2019-07-08 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=42550

Bug ID: 42550
   Summary: Byte+shift loads are not autovectorized to movdqu on
SSE4.1
   Product: libraries
   Version: trunk
  Hardware: PC
OS: All
Status: NEW
  Severity: enhancement
  Priority: P
 Component: Backend: X86
  Assignee: unassignedb...@nondot.org
  Reporter: husseyde...@gmail.com
CC: craig.top...@gmail.com, llvm-bugs@lists.llvm.org,
llvm-...@redking.me.uk, spatel+l...@rotateright.com

Take the following code:

#ifdef BYTE_SHIFT
static uint32_t read32(uint8_t const *data, size_t offset)
{
return (uint32_t) data[offset + 0]
| ((uint32_t) data[offset + 1] << 8)
| ((uint32_t) data[offset + 2] << 16)
| ((uint32_t) data[offset + 3] << 24);
}
#else
static uint32_t read32(uint8_t const *data, size_t offset)
{
uint32_t ret;
memcpy(&ret, data + offset, sizeof(float));
return ret;
}
#endif

Both ways are perfectly valid ways to perform an unaligned load, and when SSE
is disabled, they generate the same code when used. 

However, when SSE4 is enabled and loops using these loads are autovectorized,
instead of a movdqu which is what memcpy outputs, the byte shift is expanded
literally into a bunch of pslld, pinsrb, and pmovzxbd instructions.

Demo: https://godbolt.org/z/jCAm2o

These types of loads should be converted to movdqu as well.

-- 
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 42549] New: std::string has incomplete type in gdb

2019-07-08 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=42549

Bug ID: 42549
   Summary: std::string has incomplete type in gdb
   Product: clang
   Version: trunk
  Hardware: PC
OS: Linux
Status: NEW
  Severity: normal
  Priority: P
 Component: LLVM Codegen
  Assignee: unassignedclangb...@nondot.org
  Reporter: leonardc...@google.com
CC: llvm-bugs@lists.llvm.org, neeil...@live.com,
richard-l...@metafoo.co.uk

Printing a string in gdb gives us an incomplete type.

```
leonardchan@cp-snakewater:~/misc$ cat ~/misc/test.cpp
#include 
#include 

int main() {
  std::string s = "a";
  std::cerr << s << "\n";
}
leonardchan@cp-snakewater:~/misc$ bin/clang++ ~/misc/test.cpp -g -stdlib=libc++
leonardchan@cp-snakewater:~/misc$ gdb a.out
(gdb) list
1   #include 
2   #include 
3   
4   int main() {
5 std::string s = "a";
6 std::cerr << s << "\n";
7   }
(gdb) break 6
Breakpoint 1 at 0x2270ed: file test.cpp, line 6.
(gdb) r
Starting program: /usr/local/google/home/leonardchan/misc/a.out 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

Breakpoint 1, main () at test.cpp:6
6 std::cerr << s << "\n";
(gdb) print s
$1 = 
```

This was from an executable compiled with tip of tree clang. With g++ however,
we are able to get the string value.

```
leonardchan@cp-snakewater:~/misc$ g++ ~/misc/test.cpp -g
leonardchan@cp-snakewater:~/misc$ gdb a.out
(gdb) break 6
Breakpoint 1 at 0xb92: file /usr/local/google/home/leonardchan/misc/test.cpp,
line 6.
(gdb) r
Starting program: /usr/local/google/home/leonardchan/misc/a.out 

Breakpoint 1, main () at /usr/local/google/home/leonardchan/misc/test.cpp:6
6 std::cerr << s << "\n";
(gdb) print s
$1 = "a"
```

Other stl classes like std::map and std::vector still seem to get printed
normally.

-- 
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 42548] New: llgo doesn't compile in current llvm master

2019-07-08 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=42548

Bug ID: 42548
   Summary: llgo doesn't compile in current llvm master
   Product: llgo
   Version: unspecified
  Hardware: PC
OS: Linux
Status: NEW
  Severity: enhancement
  Priority: P
 Component: All Bugs
  Assignee: unassignedb...@nondot.org
  Reporter: b...@lindev.ch
CC: llvm-bugs@lists.llvm.org

Trying to enable llgo on a current (2019/07/09) llvm-project git checkout
results in:

llgo:
/home/bero/temp/abf/llvm/BUILD/llvm-9.0.0-20190708/llvm/lib/IR/Attributes.cpp:233:
llvm::Type *llvm::Attribute::getValueAsType() const: Assertion
`isTypeAttribute() && "Invalid attribute type to get the value as a type!"'
failed.
SIGABRT: abort
PC=0x7f8debf2e4c7 m=0 sigcode=18446744073709551610

goroutine 0 [idle]:
runtime: unknown pc 0x7f8debf2e4c7
[...]
goroutine 1 [syscall]:
runtime.cgocall(0x8d0440, 0xc0001632c8, 0xc0001632d0)
/usr/lib/golang/src/runtime/cgocall.go:128 +0x5b fp=0xc000163298
sp=0xc000163260 pc=0x5d926b
llvm.org/llvm/bindings/go/llvm._Cfunc_LLVMAddAttributeAtIndex(0x15cc908, 0x3,
0x15eb340)
_cgo_gotypes.go:687 +0x45 fp=0xc0001632c8 sp=0xc000163298 pc=0x808e35
llvm.org/llvm/bindings/go/llvm.Value.AddAttributeAtIndex.func1(0x15cc908, 0x3,
0x15eb340)
/tmp/gopath529316603/src/llvm.org/llvm/bindings/go/llvm/ir.go:1154
+0x98 fp=0xc000163300 sp=0xc0001632c8 pc=0x838698
llvm.org/llvm/bindings/go/llvm.Value.AddAttributeAtIndex(0x15cc908, 0x3,
0x15eb340)
/tmp/gopath529316603/src/llvm.org/llvm/bindings/go/llvm/ir.go:1154
+0x3f fp=0xc000163328 sp=0xc000163300 pc=0x82458f
llvm.org/llgo/irgen.(*functionTypeInfo).declare(0xcb9860, 0x15ecb20,
0x2cfd9f, 0xb, 0xc0001639e8)
/tmp/gopath529316603/src/llvm.org/llgo/irgen/cabi.go:526 +0xf0
fp=0xc000163388 sp=0xc000163328 pc=0x888b60
llvm.org/llgo/irgen.(*runtimeFnInfo).init(0xcdd6a8, 0xc000130f80,
0x15ecb20, 0x2cfd9f, 0xb, 0xc000163ed8, 0x4, 0x4, 0xc0001639e8, 0x1, ...)
/tmp/gopath529316603/src/llvm.org/llgo/irgen/runtime.go:31 +0x161
fp=0xc000163480 sp=0xc000163388 pc=0x894671
llvm.org/llgo/irgen.newRuntimeInterface(0x15ecb20, 0xc000130f80, 0x25, 0x1,
0x1)
/tmp/gopath529316603/src/llvm.org/llgo/irgen/runtime.go:507 +0x34bb
fp=0xc0001657d8 sp=0xc000163480 pc=0x897e2b
llvm.org/llgo/irgen.(*compiler).compile(0xc0001080f0, 0xcbab40,
0xc9e4e0, 0x2, 0x2, 0x7ffc1650c35e, 0xb, 0x0, 0x0, 0x0)
/tmp/gopath529316603/src/llvm.org/llgo/irgen/compiler.go:233 +0x4de
fp=0xc0001658d8 sp=0xc0001657d8 pc=0x88d49e
llvm.org/llgo/irgen.(*Compiler).Compile(0xc00010a2c0, 0xcbab40,
0xc9e4e0, 0x2, 0x2, 0x7ffc1650c35e, 0xb, 0x0, 0x0, 0x0)
/tmp/gopath529316603/src/llvm.org/llgo/irgen/compiler.go:131 +0x14c
fp=0xc000165950 sp=0xc0001658d8 pc=0x88cb2c
main.performAction(0xc000165e38, 0x1, 0xcae280, 0x2, 0x2, 0xcb2128,
0x5, 0x0, 0x0)
/tmp/gopath529316603/src/llvm.org/llgo/cmd/gllgo/gllgo.go:604 +0x160c
fp=0xc000165bd0 sp=0xc000165950 pc=0x8cd6fc
main.performActions(0xc000165e38, 0x0, 0x0)
/tmp/gopath529316603/src/llvm.org/llgo/cmd/gllgo/gllgo.go:811 +0x357
fp=0xc000165cc0 sp=0xc000165bd0 pc=0x8ce487
main.main()
/tmp/gopath529316603/src/llvm.org/llgo/cmd/gllgo/gllgo.go:835 +0xe0
fp=0xc000165f98 sp=0xc000165cc0 pc=0x8ce910
runtime.main()
/usr/lib/golang/src/runtime/proc.go:200 +0x20c fp=0xc000165fe0
sp=0xc000165f98 pc=0x6033bc
runtime.goexit()
/usr/lib/golang/src/runtime/asm_amd64.s:1337 +0x1 fp=0xc000165fe8
sp=0xc000165fe0 pc=0x62d691

rax0x0
rbx0x7f8dec2ea000
rcx0x7f8debf2e4c7
rdx0x0
rdi0x2
rsi0x7ffc1650abd0
rbp0x7f8dec096290
rsp0x7ffc1650abd0
r8 0x0
r9 0x7ffc1650abd0
r100x8
r110x246
r120x7f8dec925679
r130xe9
r140x7f8deca0e8b6
r150x200
rip0x7f8debf2e4c7
rflags 0x246
cs 0x33
fs 0x0
gs 0x0

-- 
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 42546] wasm/OutputSections.cpp is causing warning on GCC

2019-07-08 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=42546

Denis Bakhvalov  changed:

   What|Removed |Added

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

--- Comment #3 from Denis Bakhvalov  ---
Fixed by https://reviews.llvm.org/rL365397

-- 
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 42547] asm goto should not emit debug info at -g0

2019-07-08 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=42547

Paul Robinson  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||paul_robinson@playstation.s
   ||ony.com
 Resolution|--- |INVALID

--- Comment #4 from Paul Robinson  ---
(In reply to Nick Desaulniers from comment #3)
> So close-wontfix? WAI?

There's nothing to fix so WONTFIX is inappropriate.
We don't have a SPEC resolution, INVALID is the closest we have to WAI.

-- 
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 42547] New: asm goto should not emit debug info at -g0

2019-07-08 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=42547

Bug ID: 42547
   Summary: asm goto should not emit debug info at -g0
   Product: clang
   Version: unspecified
  Hardware: PC
OS: Linux
Status: NEW
  Severity: enhancement
  Priority: P
 Component: LLVM Codegen
  Assignee: unassignedclangb...@nondot.org
  Reporter: ndesaulni...@google.com
CC: craig.top...@gmail.com, llvm-bugs@lists.llvm.org,
neeil...@live.com, richard-l...@metafoo.co.uk,
srhi...@google.com

small bug, but:

void foo(void) {
for (int j = 0; j < 3; ++j) {
// looks like bar gets "unrolled" while baz does not
asm goto(".quad %l0\n\t.quad %l1" :: "i"(&&baz) :: bar);
bar:;
baz:;
}
}

generates:
  callbr void asm sideeffect ".quad ${0:l}\0A\09.quad ${1:l}",
"i,X,~{dirflag},~{fpsr},~{flags}"(i8* blockaddress(@foo, %8), i8*
blockaddress(@foo, %7)) #1
  to label %6 [label %7], !srcloc !2

I don't think the #1, or !srcloc !2 should be emitted at -g0.  I suspect
there's a missing check for this a flag set by g0?

-- 
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 42546] New: wasm/OutputSections.cpp is causing warning on GCC

2019-07-08 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=42546

Bug ID: 42546
   Summary: wasm/OutputSections.cpp is causing warning on GCC
   Product: lld
   Version: unspecified
  Hardware: All
OS: Linux
Status: NEW
  Severity: normal
  Priority: P
 Component: wasm
  Assignee: unassignedb...@nondot.org
  Reporter: denis.bakhva...@intel.com
CC: llvm-bugs@lists.llvm.org, s...@chromium.org

After

commit e7eb8f099298b4c79397a1a287910628c82cc319
Author: Thomas Lively 
Date:   Wed Jul 3 22:04:54 2019 +

[WebAssembly] Add option to emit passive segments

We have new warning reported by GCC (I tested at least gcc 5.5.0):

lld/wasm/OutputSections.cpp: In member function ‘virtual void
lld::wasm::DataSection::finalizeContents()’:
lld/wasm/OutputSections.cpp:136:31: error: suggest parentheses around ‘&&’
within ‘||’ [-Werror=parentheses]
  Segments.size() <= 1 &&
   ^

The fix should be trivial.

-- 
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 42545] New: [X86_64] Excess movs in XXH64 loop

2019-07-08 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=42545

Bug ID: 42545
   Summary: [X86_64]  Excess movs in XXH64 loop
   Product: libraries
   Version: trunk
  Hardware: All
OS: All
Status: NEW
  Severity: enhancement
  Priority: P
 Component: Backend: X86
  Assignee: unassignedb...@nondot.org
  Reporter: husseyde...@gmail.com
CC: craig.top...@gmail.com, llvm-bugs@lists.llvm.org,
llvm-...@redking.me.uk, spatel+l...@rotateright.com

Clang seems to generate extra mov instructions in the XXH64 loop, significantly
hampering performance.

#include 
#include 

static const uint64_t PRIME64_1 = 11400714785074694791ULL;

uint64_t XXH64_mini(const uint64_t* input, size_t len)
{
const uint64_t *limit = input + len;
uint64_t v1 = 0;

do {
v1 += *input++ * PRIME64_1;
v1  = (v1 << 31) | (v1 >> (64 - 31)); // rotate
v1 *= PRIME64_1;
} while (input<=limit);

return v1;
}


This is a simplified version of XXH64's loop. 

With -O3, I would expect something like this:

uint64_t val;
val  = *input;
val *= PRIME64_1;
acc += acc;
acc  = (acc << 31) | (acc >> (64-31));
acc *= PRIME64_1;

XXH64_mini:
movabs  rcx, -7046029288634856825
lea rdx, [rdi + 8*rsi]
xor eax, eax
.LBB0_1:
mov rsi, qword ptr [rdi]
imulrsi, rcx
add rdi, 8
add rax, rsi
rol rax, 31
imulrax, rcx
cmp rdi, rdx
jbe .LBB0_1
ret

However, Clang swaps the add instruction's operands, resulting in an extra mov:

uint64_t val;
val  = *input;
val *= PRIME64_1;
val += acc;
val  = (val << 31) | (val >> (64-31));
acc  = val;
acc *= PRIME64_1;

XXH64_mini:
movabs  rcx, -7046029288634856825
lea rdx, [rdi + 8*rsi]
xor eax, eax
.LBB0_1:
mov rsi, qword ptr [rdi]
imulrsi, rcx
add rdi, 8
add rsi, rax   # <<<
rol rsi, 31# <<<
mov rax, rsi   # <<<
imulrax, rcx
cmp rdi, rdx
jbe .LBB0_1
ret

GCC and MSVC both seem to emit the proper code, as seen here:
https://godbolt.org/z/wu7jDY

It appears that all versions of LLVM do this.

I can't seem to figure out how to further simplify this.

-- 
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 41871] --source does not work with archive members

2019-07-08 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=41871

Yuanfang Chen  changed:

   What|Removed |Added

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

--- Comment #6 from Yuanfang Chen  ---
llvm-svn: 365376

-- 
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 42544] New: Assertion `BB->getTerminator()->getNumSuccessors() == 1 && "Should have a single succ!"' failed

2019-07-08 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=42544

Bug ID: 42544
   Summary: Assertion `BB->getTerminator()->getNumSuccessors() ==
1 && "Should have a single succ!"' failed
   Product: libraries
   Version: trunk
  Hardware: PC
OS: Linux
Status: NEW
  Severity: enhancement
  Priority: P
 Component: Transformation Utilities
  Assignee: unassignedb...@nondot.org
  Reporter: pe...@pcc.me.uk
CC: llvm-bugs@lists.llvm.org

With the following test case (reduced from an LTO build of the Linux kernel) I
get:

$ cat fair.i
enum {
  a,
  b
}
# 1 "" 3
c() {
  asm goto("" : : : : d);
  asm("");
  return a;
d:
  return b;
}
ag;
e(f) {
  ag &&f;
  _Bool am = c();
  e(am);
}
$ clang -flto -O2 -c -o fair.o fair.i -fno-optimize-sibling-calls
$ ld.lld -r -o vmlinux.o fair.o 
ld.lld: [...]/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp:348:
llvm::BasicBlock *llvm::SplitEdge(llvm::BasicBlock *, llvm::BasicBlock *,
llvm::DominatorTree *, llvm::LoopInfo *, llvm::MemorySSAUpdater *): Assertion
`BB->getTerminator()->getNumSuccessors() == 1 && "Should have a single succ!"'
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 42543] New: Better reporting of what compiler versions each buildbot is using

2019-07-08 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=42543

Bug ID: 42543
   Summary: Better reporting of what compiler versions each
buildbot is using
   Product: new-bugs
   Version: unspecified
  Hardware: PC
OS: Windows NT
Status: NEW
  Severity: enhancement
  Priority: P
 Component: new bugs
  Assignee: unassignedb...@nondot.org
  Reporter: llvm-...@redking.me.uk
CC: gkistan...@gmail.com, htmldevelo...@gmail.com,
llvm-bugs@lists.llvm.org,
paul_robin...@playstation.sony.com, r...@google.com

As suggested on https://reviews.llvm.org/D64326, we should be doing more to
list what compiler versions we are running on as many buildbots as possible.

This is to help people triage any issue that could be related to specific
compilers or help us identify gaps in out compiler coverage vs the versions we
publish as supported.

-- 
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 42542] New: ThinLTO on Aarch64 fails to handle aliases to overridden weak functions

2019-07-08 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=42542

Bug ID: 42542
   Summary: ThinLTO on Aarch64 fails to handle aliases to
overridden weak functions
   Product: new-bugs
   Version: trunk
  Hardware: PC
OS: Linux
Status: NEW
  Severity: normal
  Priority: P
 Component: new bugs
  Assignee: unassignedb...@nondot.org
  Reporter: samitolva...@google.com
CC: htmldevelo...@gmail.com, llvm-bugs@lists.llvm.org

C code that defines an alias to a weak function, which is then referred to in
assembly code that also overrides the same weak function, fails to compile with
-flto=thin on Aarch64:

$ cat alias.c
__attribute__((__weak__)) int __a(int n)
{
return n;
}
int a(int n)  __attribute__((__alias__("__a")));

int main()
{
return __a(0);
}

$ cat alias.s
.arch armv8-a

__a:
b a
.globl __a

$ clang -flto=thin -fvisibility=hidden -fuse-ld=lld --target=aarch64-linux-gnu-
alias.s alias.c
Alias must point to a definition
i32 (i32)* @a
LLVM ERROR: Broken module found, compilation aborted!
clang-9: error: linker command failed with exit code 1 (use -v to see
invocation)

Using -flto instead of -flto=thin works.

This bug prevents us from compiling the Linux kernel with ThinLTO, as explained
here:
https://github.com/ClangBuiltLinux/linux/issues/509

-- 
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 42397] SCEVExpander wrongly adds nsw to shl instruction

2019-07-08 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=42397

Denis Bakhvalov  changed:

   What|Removed |Added

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

--- Comment #5 from Denis Bakhvalov  ---
Fixed by rL365363.

-- 
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 42528] Linker errors after installing/compiling LLVM/CLANG on Xcode

2019-07-08 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=42528

Joan Lluch  changed:

   What|Removed |Added

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

--- Comment #1 from Joan Lluch  ---
D64300 Fixed this

-- 
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 42541] New: PowerPC integrated as - missing instructions mulldo, addo and subfo

2019-07-08 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=42541

Bug ID: 42541
   Summary: PowerPC integrated as - missing instructions mulldo,
addo and subfo
   Product: libraries
   Version: 8.0
  Hardware: PC
OS: Linux
Status: NEW
  Severity: enhancement
  Priority: P
 Component: Backend: PowerPC
  Assignee: unassignedb...@nondot.org
  Reporter: alfredo.jun...@eldorado.org.br
CC: llvm-bugs@lists.llvm.org, nemanja.i@gmail.com

I'm trying to build ports/lang/ghc with LLVM 8.0.1 and found that clang doesn't
understand mulldo, addo and subfo.

These instructions are generated by GHC
(https://github.com/ghc/ghc/blob/ghc-8.6/compiler/nativeGen/PPC/Ppr.hs#L693)
and currently GCC/AS implements them.

-- 
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 42540] New: "version" include wreaks havoc on case-insensitive filesystems

2019-07-08 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=42540

Bug ID: 42540
   Summary: "version" include wreaks havoc on case-insensitive
filesystems
   Product: libc++
   Version: unspecified
  Hardware: All
OS: All
Status: NEW
  Severity: normal
  Priority: P
 Component: All Bugs
  Assignee: unassignedclangb...@nondot.org
  Reporter: quen...@mit.edu
CC: llvm-bugs@lists.llvm.org, mclow.li...@gmail.com

- libc++ >= 7.0 has an include file called `version` (as part of C++20)
- Many open source packages contain a file called `VERSION` (this is a standard
file in autoconf-based distributions)
- On a case-insensitive filesystem, #include  finds `VERSION` and
hilarity ensues.

I'm really not sure what the best fix would be. Asking thousands of open-source
projects to rename their `VERSION` files seems like a huge challenge. Asking
clang to be case-sensitive even when the underlying filesystem is not seems
like a non-starter. libc++ could at least not having any includes of 
within the standard library itself, but that just postpones the pain until it
starts being included in other libraries.

Is it too late to raise this as a standards issue?

-- 
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 42539] New: ARM:out of range pc-relative fixup value

2019-07-08 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=42539

Bug ID: 42539
   Summary: ARM:out of range pc-relative fixup value
   Product: clang
   Version: trunk
  Hardware: PC
OS: Linux
Status: NEW
  Severity: enhancement
  Priority: P
 Component: -New Bugs
  Assignee: unassignedclangb...@nondot.org
  Reporter: a...@linaro.org
CC: htmldevelo...@gmail.com, llvm-bugs@lists.llvm.org,
neeil...@live.com, richard-l...@metafoo.co.uk

A file in the linux kernel got compiled into an invalid assembler output. I
reduced this to:

$ clang-9 -std=gnu89 --target=arm-linux-gnueabi -fsanitize=kernel-address -O2 
-Wall -Wno-unused-value -Wno-parentheses-equality 
-Wno-unused-command-line-argument -Wno-ignored-optimization-argument
/tmp/z-4fd29d.s:33: Error: bad immediate value for offset (4104)

typedef struct { long x[4 * 8 / 2]; } map_word;
struct {
  void (*write)();
} g;
struct flchip {
  long start;
  int state;
} __attribute__((__packed__));
int a, b, c;
int fn2(void);
struct flchip d, h;
map_word e, f;
void fn1() {
  g.write(e, h.start);
  g.write(g, f, h.start);
  while (({
for (; b;)
  ;
c;
  }))
a = fn2();
  asm(".rep 6; nop; .endr");
  while (d.state)
;
}

See also https://godbolt.org/z/DSM2Jy

It seems that clang when clang tries to guess the size of the instructions in
an inline assembly, it gets the '.rep' statement wrong and assumes a smaller
number. Replacing ".rep 6; nop; .endr" with six straight nop instructions
avoids the problem.

-- 
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 15704 in oss-fuzz: llvm/llvm-opt-fuzzer--x86_64-loop_predication: ASSERT: isGuardAsWidenableBranch(BI) && "Stopped being a guard after transform?"

2019-07-08 Thread ClusterFuzz-External via monorail via llvm-bugs

Updates:
Labels: ClusterFuzz-Verified
Status: Verified

Comment #1 on issue 15704 by ClusterFuzz-External:  
llvm/llvm-opt-fuzzer--x86_64-loop_predication: ASSERT:  
isGuardAsWidenableBranch(BI) && "Stopped being a guard after transform?"

https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=15704#c1

ClusterFuzz testcase 5672737185464320 is verified as fixed in  
https://oss-fuzz.com/revisions?job=libfuzzer_asan_llvm&range=201907070312:201907080311


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 15517 in oss-fuzz: llvm/clang-fuzzer: Stack-overflow in processTypeAttrs

2019-07-08 Thread ClusterFuzz-External via monorail via llvm-bugs

Updates:
Labels: ClusterFuzz-Verified
Status: Verified

Comment #1 on issue 15517 by ClusterFuzz-External: llvm/clang-fuzzer:  
Stack-overflow in processTypeAttrs

https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=15517#c1

ClusterFuzz testcase 5636089345212416 is verified as fixed in  
https://oss-fuzz.com/revisions?job=libfuzzer_asan_llvm&range=201907070312:201907080311


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 15711 in oss-fuzz: llvm/clang-fuzzer: Null-dereference READ in clang::LinkageComputer::getLVForDecl

2019-07-08 Thread ClusterFuzz-External via monorail via llvm-bugs

Status: New
Owner: 
CC: k...@google.com, masc...@google.com, jdevlieg...@apple.com,  
igm...@gmail.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-2019-07-08

Type: Bug

New issue 15711 by ClusterFuzz-External: llvm/clang-fuzzer:  
Null-dereference READ in clang::LinkageComputer::getLVForDecl

https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=15711

Detailed report: https://oss-fuzz.com/testcase?key=5671959158849536

Project: llvm
Fuzzer: libFuzzer_llvm_clang-fuzzer
Fuzz target binary: clang-fuzzer
Job Type: libfuzzer_msan_llvm
Platform Id: linux

Crash Type: Null-dereference READ
Crash Address: 0x
Crash State:
  clang::LinkageComputer::getLVForDecl
  clang::NamedDecl::getLinkageInternal
  clang::Sema::CheckCompleteVariableDeclaration

Sanitizer: memory (MSAN)

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


Issue filed automatically.

See https://github.com/google/oss-fuzz/blob/master/docs/reproducing.md for  
instructions to reproduce this bug locally.


--
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 42538] New: vzeroupper elimination

2019-07-08 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=42538

Bug ID: 42538
   Summary: vzeroupper elimination
   Product: libraries
   Version: trunk
  Hardware: PC
OS: Linux
Status: NEW
  Severity: enhancement
  Priority: P
 Component: Backend: X86
  Assignee: unassignedb...@nondot.org
  Reporter: david.bolvan...@gmail.com
CC: craig.top...@gmail.com, llvm-bugs@lists.llvm.org,
llvm-...@redking.me.uk, spatel+l...@rotateright.com

#include 

Since GCC 9+, GCC can eliminate vzeroupper in various cases, e.g.:

long long get_elem2(__m256i v) {
return v[2];
}

Clang -O3 -march=skylake-avx512
get_elem2:
vextracti128xmm0, ymm0, 1
vmovq   rax, xmm0
vzeroupper
ret

GCC  -O3 -march=skylake-avx512
get_elem2:
vextracti64x2   xmm0, ymm0, 0x1
vmovq   rax, xmm0
ret

-- 
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 42537] New: Missing documentation about cross-compilation

2019-07-08 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=42537

Bug ID: 42537
   Summary: Missing documentation about cross-compilation
   Product: compiler-rt
   Version: 8.0
  Hardware: PC
OS: Linux
Status: NEW
  Severity: enhancement
  Priority: P
 Component: builtins
  Assignee: unassignedb...@nondot.org
  Reporter: qwertyt...@gmail.com
CC: llvm-bugs@lists.llvm.org

I haven't found fresh documentation about cross-compilation on compiler-rt for
platforms, other than the host one.

For example, for me it was real challenge, to cross-compile
libclang_rt.builtins-aarch64.a on from x86 host platform.

Please fix me and close this issue if I'm wrong.

-- 
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 42536] New: lld-link reporting undefined symbol with lto

2019-07-08 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=42536

Bug ID: 42536
   Summary: lld-link reporting undefined symbol with lto
   Product: lld
   Version: unspecified
  Hardware: PC
OS: Windows NT
Status: NEW
  Severity: enhancement
  Priority: P
 Component: COFF
  Assignee: unassignedb...@nondot.org
  Reporter: russell_gal...@sn.scee.net
CC: llvm-bugs@lists.llvm.org

Created attachment 22205
  --> https://bugs.llvm.org/attachment.cgi?id=22205&action=edit
Reproducible

lld-link 8.0.0 crashes when reporting an undefined symbol (still present at
r364942).

(note that the test case below wouldn't link successfully with the bug fixed
due to the undefined symbols).

--- library.cpp
struct S {
  virtual void foo() {}
};
void a() { S b; }

--- main.cpp
struct __declspec(dllimport) S {
  virtual void foo();
};
struct a {
  a();
};
struct {
  a b;
  S c;
} d;

> clang-cl /c /nologo /O2 /MT /TP -m64 -flto library.cpp
> llvm-lib /OUT:library.lib /NOLOGO library.obj
> clang-cl /c /nologo /O2 /MT /TP -m64 -flto main.cpp
>lld-link /OUT:test.exe "library.lib" "main.obj" /MACHINE:X64 /INCREMENTAL:NO 
>/SUBSYSTEM:CONSOLE /ERRORREPORT:PROMPT /NOLOGO /NODEFAULTLIB
lld-link: error: : undefined symbol: mainCRTStartup
Stack dump:
0.  Program arguments: lld-link /OUT:test.exe library.lib main.obj
/MACHINE:X64 /INCREMENTAL:NO /SUBSYSTEM:CONSOLE /ERRORREPORT:PROMPT /NOLOGO
/NODEFAULTLIB
 #0 0x7ff6b77886d3 lld::coff::getSymbol
F:\git\llvm-project\lld\COFF\SymbolTable.cpp:72:0
 #1 0x7ff6b7787c0c lld::coff::getSymbolLocations(class lld::coff::ObjFile
*,unsigned int) F:\git\llvm-project\lld\COFF\SymbolTable.cpp:102:0
 #2 0x7ff6b778bcaf lld::coff::reportUndefinedSymbol
F:\git\llvm-project\lld\COFF\SymbolTable.cpp:147:0
 #3 0x7ff6b778b498 lld::coff::SymbolTable::reportRemainingUndefines(void)
F:\git\llvm-project\lld\COFF\SymbolTable.cpp:331:0
 #4 0x7ff6b76f0437 lld::coff::LinkerDriver::link(class llvm::ArrayRef) F:\git\llvm-project\lld\COFF\Driver.cpp:1761:0
 #5 0x7ff6b76e89e1 lld::coff::link(class llvm::ArrayRef,bool,class llvm::raw_ostream &) F:\git\llvm-project\lld\COFF\Driver.cpp:78:0
 #6 0x7ff6b76b1227 main F:\git\llvm-project\lld\tools\lld\lld.cpp:155:0
 #7 0x7ff6b95fbc94 __scrt_common_main_seh
d:\agent\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288:0
 #8 0x7ffe2d414034 (C:\WINDOWS\System32\KERNEL32.DLL+0x14034)
 #9 0x7ffe2e553691 (C:\WINDOWS\SYSTEM32\ntdll.dll+0x73691)

Without -flto this reports:
lld-link: error: : undefined symbol: mainCRTStartup
lld-link: error: undefined symbol: public: __cdecl a::a(void)
>>> referenced by main.obj:(_GLOBAL__sub_I_main.cpp)

lld-link: error: undefined symbol: const type_info::`vftable'
>>> referenced by main.obj:(struct S `RTTI Type Descriptor')
>>> referenced by library.lib(library.obj)

-- 
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 42535] New: Atomics support missing on 32-bit SPARC

2019-07-08 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=42535

Bug ID: 42535
   Summary: Atomics support missing on 32-bit SPARC
   Product: libraries
   Version: trunk
  Hardware: Sun
OS: Solaris
Status: NEW
  Keywords: missing-feature
  Severity: normal
  Priority: P
 Component: Backend: Sparc
  Assignee: unassignedb...@nondot.org
  Reporter: r...@gcc.gnu.org
CC: llvm-bugs@lists.llvm.org, venka...@cs.wisc.edu

When trying a 2-stage build of llvm trunk on Solaris 11.5/SPARC, quite a number
of tests FAILed compared to a 1-stage build with gcc 9.  Many failed due to
missing atomics support in 32-bit sparc.  The problem can easily be seen with
the tests used in llvm `cmake/modules/CheckAtomic.cmake`:
```
$ cat atomic.c
#include 
std::atomic x;
int main() {
  return x;
}
$ clang++ -m32 -std=c++11 atomic.c
 symbol in file
__atomic_load_4 /var/tmp/atomics-04089b.o
ld: fatal: symbol referencing errors
clang-9: error: linker command failed with exit code 1 (use -v to see
invocation)
$ gcc -m32 -std=c++11 atomic.c
```
While I can hack the driver to link with `-latomics` to avoid this issue, it
would make way more sense if clang would handle this like gcc.

-- 
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 42534] New: [DAGCombine] X86 EltsFromConsecutiveLoads logic should be more generic

2019-07-08 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=42534

Bug ID: 42534
   Summary: [DAGCombine] X86 EltsFromConsecutiveLoads logic should
be more generic
   Product: libraries
   Version: trunk
  Hardware: PC
OS: Windows NT
Status: NEW
  Severity: enhancement
  Priority: P
 Component: Common Code Generator Code
  Assignee: unassignedb...@nondot.org
  Reporter: llvm-...@redking.me.uk
CC: listm...@philipreames.com, llvm-bugs@lists.llvm.org,
llvm-...@ndave.org, spatel+l...@rotateright.com

We should be trying to move some/most of this load combine logic into
DAGCombiner and use TLI hooks for any target specific optimizations.

Builds on the work in https://reviews.llvm.org/D64205

-- 
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 42533] New: Objective-C pointer bug with fobjc-arc

2019-07-08 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=42533

Bug ID: 42533
   Summary: Objective-C pointer bug with fobjc-arc
   Product: clang
   Version: unspecified
  Hardware: Macintosh
OS: MacOS X
Status: NEW
  Severity: normal
  Priority: P
 Component: Frontend
  Assignee: unassignedclangb...@nondot.org
  Reporter: mike.kl...@gmail.com
CC: llvm-bugs@lists.llvm.org, neeil...@live.com,
richard-l...@metafoo.co.uk

when compiling the following app with "-fobjc-arc -Werror" option i am not
getting expected compilation error. the app crashes at run time, obviously.
without "-fobjc-arc" option compiler issues a warning / error as expected.


#import 

@interface Animal: NSObject
@end

@implementation Animal
@end

@interface Dog: Animal
- (void)bark;
@end

@implementation Dog
- (void)bark {}
@end

void bark(Dog** dog) {
[*dog bark];
}

int main(int argc, const char* argv[]) {
Animal* animal = [Animal new];
bark(&animal);
}


// same with foundation types

#import 

void foo(NSMutableDictionary** mutableDictionary) {
(*mutableDictionary)[@"hello"] = @"world";
}

int main(int argc, const char* argv[]) {
NSDictionary* dictionary = [NSDictionary new];
foo(&dictionary);
}

-- 
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 41565] wasm linker: __start_SECTION / __end_SECTION symbol missing

2019-07-08 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=41565

Sam Clegg  changed:

   What|Removed |Added

 Status|REOPENED|RESOLVED
 Resolution|--- |FIXED

--- Comment #8 from Sam Clegg  ---
Should be fixed in https://reviews.llvm.org/D64148

-- 
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 15623 in oss-fuzz: llvm: Build failure

2019-07-08 Thread ClusterFuzz-External via monorail via llvm-bugs


Comment #2 on issue 15623 by ClusterFuzz-External: llvm: Build failure
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=15623#c2

Friendly reminder that the the build is still failing.
Please try to fix this failure to ensure that fuzzing remains productive.
Latest build log:  
https://oss-fuzz-build-logs.storage.googleapis.com/log-5987aca5-f451-4383-8290-a81def7d452c.txt


--
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 42532] New: [libclang] Infinite recursion when trying to evaluate alignof of a typedef of a template parameter.

2019-07-08 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=42532

Bug ID: 42532
   Summary: [libclang] Infinite recursion when trying to evaluate
alignof of a typedef of a template parameter.
   Product: clang
   Version: unspecified
  Hardware: PC
OS: Linux
Status: NEW
  Severity: enhancement
  Priority: P
 Component: libclang
  Assignee: unassignedclangb...@nondot.org
  Reporter: emi...@crisal.io
CC: kli...@google.com, llvm-bugs@lists.llvm.org,
richard-l...@metafoo.co.uk

See https://github.com/rust-lang/rust-bindgen/issues/1590

Test-case is:

template  class e {
  using f = d;
  static const auto g = alignof(f);
};

Trying to evaluate the cursor for `g` hangs as noted in that bug report.

-- 
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