[llvm-bugs] [Bug 40519] New: clang++ fails to compile SFINAE member function overloaded with using-imported fallback function from base class

2019-01-30 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=40519

Bug ID: 40519
   Summary: clang++ fails to compile SFINAE member function
overloaded with using-imported fallback function from
base class
   Product: clang
   Version: 7.0
  Hardware: PC
OS: Linux
Status: NEW
  Severity: normal
  Priority: P
 Component: C++11
  Assignee: unassignedclangb...@nondot.org
  Reporter: hrog...@fusionsystems.org
CC: blitzrak...@gmail.com, dgre...@apple.com,
erik.pilking...@gmail.com, llvm-bugs@lists.llvm.org,
richard-l...@metafoo.co.uk

When overloading an SFINAE-qualified member function with a using-imported
templated member function from a base class, the compiler fails to correctly
resolve the overload (the base class member function is supposed to be a
fallback).

The following code compiles with gcc since 7.1, but not clang 7.0.1. Note: msvc
19.16, icc 19.0.1 (latest on godbolt.org) also fail to compile this.

#include 
template  struct A;
struct B { };
template  struct A { typedef R T; };
struct C {
  template 
  void foo(T) { puts("Hello World"); }
};
struct D : public C {
  using C::foo;
  template 
  typename A::T foo(T) { puts("Goodbye World"); }
};
struct E { };
int main()
{
  D{}.foo(E{});
  D{}.foo(B{});
}

-- 
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 40520] New: clang-format BreakBeforeBraces: Custom and IndentBraces: true

2019-01-30 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=40520

Bug ID: 40520
   Summary: clang-format BreakBeforeBraces: Custom and
IndentBraces: true
   Product: clang
   Version: 5.0
  Hardware: PC
OS: Windows NT
Status: NEW
  Severity: normal
  Priority: P
 Component: Formatter
  Assignee: unassignedclangb...@nondot.org
  Reporter: fedor.birju...@gmail.com
CC: djas...@google.com, kli...@google.com,
llvm-bugs@lists.llvm.org

I tried these settings:
BreakBeforeBraces:   Custom
BraceWrapping:
  IndentBraces:  true

Expecting to see something like this:
void func()
   {
   // ...
   }
class X
   {
   public:
  // ...
   }
namespace Y
   {
   namespace Z
  {
  // ...
  }
   }
for (;;)
   {
   // ...
   }
if ()
   {
   // ...
   }
else
   {
   // ...
   }

But it did not work as expected.

Any ideas?

Tried that for all versions >=5.

-- 
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 40521] New: Infinite loop in DAG combining

2019-01-30 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=40521

Bug ID: 40521
   Summary: Infinite loop in DAG combining
   Product: libraries
   Version: trunk
  Hardware: PC
OS: Linux
Status: NEW
  Severity: enhancement
  Priority: P
 Component: Common Code Generator Code
  Assignee: unassignedb...@nondot.org
  Reporter: mikael.hol...@ericsson.com
CC: llvm-bugs@lists.llvm.org

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

Reproduce with
 llc bbi-23735.ll -o -

With -debug we see some repeated printouts:

Combining: t28: ch = store<(store 5 into %ir.res2, align 8), trunc to i36>
t126:1, t129, FrameIndex:i64<1>, undef:i64

Combining: t126: i64,ch = load<(dereferenceable load 4 from %ir.f, align 8),
zext from i32> t0, FrameIndex:i64<0>, undef:i64

Combining: t129: i64 = and t127, Constant:i64<4095>
Creating new node: t130: i32 = truncate t126
Creating constant: t131: i32 = Constant<4095>
Creating new node: t132: i32 = srl t130, Constant:i8<15>
Creating new node: t133: i32 = and t132, Constant:i32<4095>
Creating new node: t134: i64 = zero_extend t133
 ... into: t134: i64 = zero_extend t133

Combining: t126: i64,ch = load<(dereferenceable load 4 from %ir.f, align 8),
zext from i32> t0, FrameIndex:i64<0>, undef:i64

Combining: t28: ch = store<(store 5 into %ir.res2, align 8), trunc to i36>
t126:1, t134, FrameIndex:i64<1>, undef:i64

Combining: t134: i64 = zero_extend t133

Combining: t133: i32 = and t132, Constant:i32<4095>

Combining: t131: i32 = Constant<4095>

Combining: t132: i32 = srl t130, Constant:i8<15>

Combining: t130: i32 = truncate t126
Creating new node: t135: i32,ch = load<(dereferenceable load 4 from %ir.f,
align 8)> t0, FrameIndex:i64<0>, undef:i64
 ... into: t135: i32,ch = load<(dereferenceable load 4 from %ir.f, align 8)>
t0, FrameIndex:i64<0>, undef:i64

Combining: t28: ch = store<(store 5 into %ir.res2, align 8), trunc to i36>
t135:1, t134, FrameIndex:i64<1>, undef:i64

Combining: t134: i64 = zero_extend t133
Creating new node: t136: i64,ch = load<(dereferenceable load 4 from %ir.f,
align 8), zext from i32> t0, FrameIndex:i64<0>, undef:i64
Creating new node: t137: i64 = srl t136, Constant:i8<15>
Creating constant: t138: i64 = Constant<4095>
Creating new node: t139: i64 = and t137, Constant:i64<4095>

Replacing.1 t134: i64 = zero_extend t133

With: t139: i64 = and t137, Constant:i64<4095>
 and 0 other values

Combining: t28: ch = store<(store 5 into %ir.res2, align 8), trunc to i36>
t136:1, t139, FrameIndex:i64<1>, undef:i64

Combining: t136: i64,ch = load<(dereferenceable load 4 from %ir.f, align 8),
zext from i32> t0, FrameIndex:i64<0>, undef:i64

Combining: t139: i64 = and t137, Constant:i64<4095>
Creating new node: t140: i32 = truncate t136
Creating constant: t141: i32 = Constant<4095>
Creating new node: t142: i32 = srl t140, Constant:i8<15>
Creating new node: t143: i32 = and t142, Constant:i32<4095>
Creating new node: t144: i64 = zero_extend t143
 ... into: t144: i64 = zero_extend t143

Combining: t136: i64,ch = load<(dereferenceable load 4 from %ir.f, align 8),
zext from i32> t0, FrameIndex:i64<0>, undef:i64

Combining: t28: ch = store<(store 5 into %ir.res2, align 8), trunc to i36>
t136:1, t144, FrameIndex:i64<1>, undef:i64


This starts happening with r329516 but I've no idea if that commit is really to
blame or if it just exposes some old problem.

r329516:
[DAGCombiner] Fold (zext (and/or/xor (shl/shr (load x), cst), cst))

In our real world application, we found the following optimization is
missed in DAGCombiner

(zext (and/or/xor (shl/shr (load x), cst), cst)) -> (and/or/xor (shl/shr
(zextload x), (zext cst)), (zext cst))

If the user of original zext is an add, it may enable further lea
optimization on x86.

This patch add a new function CombineZExtLogicopShiftLoad to do this
optimization.

Differential Revision: https://reviews.llvm.org/D44402

-- 
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 40522] New: [SLPVectorizer] Failure to use vector store as a seed point

2019-01-30 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=40522

Bug ID: 40522
   Summary: [SLPVectorizer] Failure to use vector store as a seed
point
   Product: libraries
   Version: trunk
  Hardware: PC
OS: Windows NT
Status: NEW
  Severity: enhancement
  Priority: P
 Component: Scalar Optimizations
  Assignee: unassignedb...@nondot.org
  Reporter: llvm-...@redking.me.uk
CC: a.bat...@hotmail.com, llvm-bugs@lists.llvm.org,
spatel+l...@rotateright.com

https://godbolt.org/z/6NyXmr

void test1(float a, float b, float c, float d, int *p) {
  int4 result = (int4) { (int) a, (int) b, (int) c, (int) d };
  *p++ = result[0];
  *p++ = result[1];
  *p++ = result[2];
  *p++ = result[3];
}

void test1_vec(float a, float b, float c, float d, int4 *p) {
  int4 result = (int4) { (int) a, (int) b, (int) c, (int) d };
  *p = result;
}

We will vectorize the first variant but not the second.

-- 
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 40523] New: [DebugInfo@O2]: LLVM ERROR: Broken function found, while removing Debug Intrinsics

2019-01-30 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=40523

Bug ID: 40523
   Summary: [DebugInfo@O2]: LLVM ERROR: Broken function found,
while removing Debug Intrinsics
   Product: new-bugs
   Version: trunk
  Hardware: PC
OS: Linux
Status: NEW
  Severity: normal
  Priority: P
 Component: new bugs
  Assignee: unassignedb...@nondot.org
  Reporter: international.phan...@gmail.com
CC: apra...@apple.com, chackz0...@gmail.com,
greg.bedw...@sony.com, htmldevelo...@gmail.com,
jeremy.morse.l...@gmail.com, llvm-bugs@lists.llvm.org,
mikael.hol...@ericsson.com, paul.robin...@am.sony.com,
v...@apple.com

Created attachment 21404
  --> https://bugs.llvm.org/attachment.cgi?id=21404&action=edit
Test case that reproduces the crash.

Given the attached test case and using the following
command line:

opt -S -o - bbi-23595.ll -simplifycfg

you get

llvm.dbg.label intrinsic requires a !dbg attachment
   call void @llvm.dbg.label(metadata !1)
label %entry
i16 ()* @_Z7test_itv
in function _Z7test_itv

LLVM ERROR: Broken function found, compilation aborted!

-- 
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 40521] Infinite loop in DAG combining

2019-01-30 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=40521

Mikael Holmén  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |DUPLICATE

--- Comment #1 from Mikael Holmén  ---
Probably the same problem as https://bugs.llvm.org/show_bug.cgi?id=39098

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

-- 
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 12781 in oss-fuzz: llvm/llvm-isel-fuzzer--wasm32-O2: ASSERT: N->getOpcode() != ISD::DELETED_NODE && "Node was deleted but visit returned NULL

2019-01-30 Thread ClusterFuzz-External via monorail via llvm-bugs

Status: New
Owner: 
CC: k...@google.com, masc...@google.com, jdevlieg...@apple.com,  
igm...@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 Proj-llvm Reported-2019-01-30

Type: Bug

New issue 12781 by ClusterFuzz-External: llvm/llvm-isel-fuzzer--wasm32-O2:  
ASSERT: N->getOpcode() != ISD::DELETED_NODE && "Node was deleted but visit  
returned NULL

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

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

Project: llvm
Fuzzer: libFuzzer_llvm_llvm-isel-fuzzer--wasm32-O2
Fuzz target binary: llvm-isel-fuzzer--wasm32-O2
Job Type: libfuzzer_asan_llvm
Platform Id: linux

Crash Type: ASSERT
Crash Address:
Crash State:
  N->getOpcode() != ISD::DELETED_NODE && "Node was deleted but visit  
returned NULL

  DAGCombiner::combine
  llvm::SelectionDAG::Combine

Sanitizer: address (ASAN)

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


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


Issue filed automatically.

See https://github.com/google/oss-fuzz/blob/master/docs/reproducing.md 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.


--
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 40524] New: INVOKEing pointer to const&-qualified member function with rvalue results in an error

2019-01-30 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=40524

Bug ID: 40524
   Summary: INVOKEing pointer to const&-qualified member function
with rvalue results in an error
   Product: libc++
   Version: unspecified
  Hardware: PC
OS: MacOS X
Status: NEW
  Severity: enhancement
  Priority: P
 Component: All Bugs
  Assignee: unassignedclangb...@nondot.org
  Reporter: lu...@math.hu-berlin.de
CC: llvm-bugs@lists.llvm.org, mclow.li...@gmail.com

Following code is rejected:

#include 

struct S
{
void foo() const&;
};

void bar()
{
(S{}.*&S::foo)(); // OK
std::mem_fn(&S::foo)(S{}); // Error
}

Bullet point 1.1 of [func.require] reads (citing N4296)
Define INVOKE (f, t1, t2, ..., tN) as follows:
(t1.*f)(t2, ..., tN) when f is a pointer to a member function of a class T and
t1  is an object of
type T or a reference to an object of type T or a reference to an object of a
type derived from T; 

I assume the problem is that T is substituted with S const& when applicability
of that bullet point is checked, but S const& is not a class, so T must be
substituted with S.

-- 
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 40525] New: Incorrect encoding of DWARF 5 loc list entry

2019-01-30 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=40525

Bug ID: 40525
   Summary: Incorrect encoding of DWARF 5 loc list entry
   Product: libraries
   Version: trunk
  Hardware: PC
OS: Windows NT
Status: NEW
  Severity: enhancement
  Priority: P
 Component: DebugInfo
  Assignee: unassignedb...@nondot.org
  Reporter: paul_robin...@playstation.sony.com
CC: jdevliegh...@apple.com, keith.wal...@arm.com,
llvm-bugs@lists.llvm.org,
paul_robin...@playstation.sony.com

Report from Philip Craig, philipjcr...@gmail.com, quoted here:

I've been working on DWARF v5 parsing in another project, and I was
testing on LLVM's output, and I noticed a bug in the location list
entry.

See section 2.6.2 of the v5 standard:

"A counted location description operand consists of an unsigned ULEB
integer giving the length of the location description (see Section 2.6.1 on
page 39) that immediately follows."

but LLVM encodes the length as a 16 bit int here:
https://github.com/llvm-mirror/llvm/blob/c35ddbd43e57090947d74b7670d53ee1106c50f2/lib/CodeGen/AsmPrinter/DwarfDebug.cpp#L1981

This function is correct for DWARF v4, but needs updating for entries
in .debug_loclists. llvm-dwarfdump will need fixing to parse it
correctly too. I've checked that gcc emits a ULEB and gdb parses it as
a ULEB.

-- 
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 40526] New: dependence analysis degradations due to removal of GEP analysis in D35430

2019-01-30 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=40526

Bug ID: 40526
   Summary: dependence analysis degradations due to removal of GEP
analysis in D35430
   Product: libraries
   Version: trunk
  Hardware: All
OS: All
Status: NEW
  Severity: enhancement
  Priority: P
 Component: Global Analyses
  Assignee: unassignedb...@nondot.org
  Reporter: andreas.hom...@nxp.com
CC: llvm-bugs@lists.llvm.org

We are currently moving a project from LLVM4 to LLVM7 and found major
degradations in some of our benchmarks that are due to the removal of the GEP
based da analysis by D35430.

The now purely SCEV based da pass is no longer able to handle this case:

#define N 200
int a[N][N];
void test(void)
{
  for (int i = 0; i < N; ++i) {
for (int j = i + 1; j < N; ++j) {
  a[i][j] = a[j][i];
}
  }
}

With LLVM4 we get 

$ clang -S -emit-llvm -O1 test.c
$ opt -analyze -da test.ll
Printing analysis 'Dependence Analysis' for function 'test':
da analyze - none!
da analyze - none!
da analyze - none!

With LLVM7 the above incorrectly prints:

da analyze -
input [* *]!
anti [<= *|<]!
none!

So, it fails to classify the first and second dependence correctly. The first
is for ld/ld, so it is not that important, but the second is for the ld/st
dependency.

The LLVM4 GEP based analysis for the ld/st uses this:

da analyze - common nesting levels = 2
maximum nesting levels = 2
SrcPtrSCEV = @a
DstPtrSCEV = @a
using GEPs
subscript 0
src = 0
dst = 0
class = 0
loops = {}
subscript 1
src = {{1,+,1}<%for.body>,+,1}<%for.body4>
dst = {0,+,1}<%for.body>
class = 3
loops = {1 2}
subscript 2
src = {0,+,1}<%for.body>
dst = {{1,+,1}<%for.body>,+,1}<%for.body4>
class = 3
loops = {1 2}
Separable = {0}
Coupled = {2}

and Banerjee can handle this.

With LLVM7 we only get a single SCEV subscript:

da analyze - common nesting levels = 2
maximum nesting levels = 2
SrcPtrSCEV = @a
DstPtrSCEV = @a
using SCEVs
SrcSCEV = {{(800 + @a),+,804}<%for.body>,+,800}<%for.body4>
DstSCEV = {{(4 + @a),+,804}<%for.body>,+,4}<%for.body4>
subscript 0
src = {{(800 + @a),+,804}<%for.body>,+,800}<%for.body4>
dst = {{(4 + @a),+,804}<%for.body>,+,4}<%for.body4>
class = 3
loops = {1 2}
Separable = {0}
Coupled = {}

Which is not handled by da’s delinearization or by any of the following da
analysis methods.

The GEP based analysis was removed by D35430, but I am not sure what this
removal really fixes. It also seems to break other cases that previously
worked, e.g., for loop interchange. The Coupled.ll in this review has two
dimensions in the code, so I am not seeing why there should be only one
dimension. Also, the new result, for

;;  for (long int i = 0; i < 50; i++) {
;;A[i][3*i - 6] = i;
;;*B++ = A[i][i];

define void @couple6([100 x i32]* %A, i32* %B, i32 %n) nounwind uwtable ssp {
entry:
  br label %for.body

; CHECK-LABEL: couple6
; CHECK: da analyze - none!
; CHECK: da analyze - flow [<]!
; CHECK: da analyze - confused!
; CHECK: da analyze - none!
; CHECK: da analyze - confused!
; CHECK: da analyze - none!

is not correct either, the load/store intersect at i==3, so ideally this would
be reported as splitable.

The GEPs usually come from a compiler’s FE and are a direct representation of
the source code. Just not using this seems to be a mistake, especially since
there is currently no mechanism (e.g., da’s de-linearization) to recover this
for trivial and common cases like my example above.

I would propose to undo this commit and look for another way to fix this that
will not remove the GEP part.

-- 
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 40527] New: Missed opportunity to remove a dead store

2019-01-30 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=40527

Bug ID: 40527
   Summary: Missed opportunity to remove a dead store
   Product: libraries
   Version: trunk
  Hardware: PC
OS: Linux
Status: NEW
  Severity: enhancement
  Priority: P
 Component: Backend: X86
  Assignee: unassignedb...@nondot.org
  Reporter: gli...@google.com
CC: craig.top...@gmail.com, llvm-bugs@lists.llvm.org,
llvm-...@redking.me.uk, spatel+l...@rotateright.com

When compiling the following code:


  void alloc_sock(int *err);
  int try_send();

  int send(int len) {
int err;
if (len) {
  err = -1; 
  alloc_sock(&err);
  err = try_send();
}
return -1; 
  }


with 
 $ clang -O2  -g -ftrivial-auto-var-init=pattern
-enable-trivial-auto-var-init-zero-knowing-it-will-be-removed-from-clang -c t.c

Clang produces an extra store of $0x to |err|, which is introduced by
the -ftrivial-auto-var-init and not removed by other optimizations in the
pipeline:

$ objdump -d t.o

 :
   0:   50  push   %rax
   1:   c7 44 24 04 aa aa aamovl   $0x,0x4(%rsp)
   8:   aa 
   9:   85 ff   test   %edi,%edi
   b:   74 1d   je 2a 
   d:   c7 44 24 04 ff ff ffmovl   $0x,0x4(%rsp)
  14:   ff 
  15:   48 8d 7c 24 04  lea0x4(%rsp),%rdi
  1a:   e8 00 00 00 00  callq  1f 
  1f:   31 c0   xor%eax,%eax
  21:   e8 00 00 00 00  callq  26 
  26:   89 44 24 04 mov%eax,0x4(%rsp)
  2a:   b8 ff ff ff ff  mov$0x,%eax
  2f:   59  pop%rcx
  30:   c3  retq  

As noted by JF Bastien here: https://reviews.llvm.org/D54604, "Seems like the
optimizer should sink the store enough that it appears only once on each path."

-- 
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 40528] New: [DTU] DomTreeUpdater's Eager strategy fails to update DomTree, Lazy strategy works OK

2019-01-30 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=40528

Bug ID: 40528
   Summary: [DTU] DomTreeUpdater's Eager strategy fails to update
DomTree, Lazy strategy works OK
   Product: new-bugs
   Version: trunk
  Hardware: PC
OS: Windows NT
Status: NEW
  Severity: enhancement
  Priority: P
 Component: new bugs
  Assignee: unassignedb...@nondot.org
  Reporter: max.kazant...@azul.com
CC: htmldevelo...@gmail.com, llvm-bugs@lists.llvm.org

I wrote a unit test https://reviews.llvm.org/D57448 which demonstrates that DTU
with Eager strategy fails to update the DomTree properly. Apply the patch and
run unit tests. The failure looks like:


 1 FAILED TEST
DominatorTree is different than a freshly computed one!
Current:
=
Inorder Dominator Tree: DFSNumbers invalid: 0 slow queries.
  [1] %BB {4294967295,4294967295} [0]
[2] %BB1 {4294967295,4294967295} [1]
  [3] %BB17 {4294967295,4294967295} [2]
  [3] %BB2 {4294967295,4294967295} [2]
[4] %Split {4294967295,4294967295} [3]
  [5] %BB3 {4294967295,4294967295} [4]
[6] %BB4 {4294967295,4294967295} [5]
  [7] %BB5 {4294967295,4294967295} [6]
[8] %BB16 {4294967295,4294967295} [7]
[8] %BB15 {4294967295,4294967295} [7]
[8] %BB14 {4294967295,4294967295} [7]
[8] %BB13 {4294967295,4294967295} [7]
[8] %BB12 {4294967295,4294967295} [7]
[8] %BB11 {4294967295,4294967295} [7]
[8] %BB8 {4294967295,4294967295} [7]
  [9] %BB28 {4294967295,4294967295} [8]
  [9] %BB27 {4294967295,4294967295} [8]
  [9] %BB26 {4294967295,4294967295} [8]
  [9] %BB23 {4294967295,4294967295} [8]
  [9] %BB24 {4294967295,4294967295} [8]
  [9] %BB25 {4294967295,4294967295} [8]
  [9] %BB29 {4294967295,4294967295} [8]
  [9] %BB22 {4294967295,4294967295} [8]
  [9] %BB20 {4294967295,4294967295} [8]
  [9] %BB21 {4294967295,4294967295} [8]
[8] %BB10 {4294967295,4294967295} [7]
[8] %BB9 {4294967295,4294967295} [7]
[8] %BB7 {4294967295,4294967295} [7]
[4] %BB19 {4294967295,4294967295} [3]

Freshly computed tree:
=
Inorder Dominator Tree: DFSNumbers invalid: 0 slow queries.
  [1] %BB {4294967295,4294967295} [0]
[2] %BB1 {4294967295,4294967295} [1]
  [3] %BB17 {4294967295,4294967295} [2]
  [3] %BB2 {4294967295,4294967295} [2]
[4] %Split {4294967295,4294967295} [3]
  [5] %BB3 {4294967295,4294967295} [4]
[6] %BB4 {4294967295,4294967295} [5]
  [7] %BB5 {4294967295,4294967295} [6]
[8] %BB16 {4294967295,4294967295} [7]
[8] %BB15 {4294967295,4294967295} [7]
[8] %BB14 {4294967295,4294967295} [7]
[8] %BB13 {4294967295,4294967295} [7]
[8] %BB12 {4294967295,4294967295} [7]
[8] %BB11 {4294967295,4294967295} [7]
[8] %BB8 {4294967295,4294967295} [7]
  [9] %BB28 {4294967295,4294967295} [8]
  [9] %BB27 {4294967295,4294967295} [8]
  [9] %BB26 {4294967295,4294967295} [8]
  [9] %BB23 {4294967295,4294967295} [8]
  [9] %BB24 {4294967295,4294967295} [8]
  [9] %BB25 {4294967295,4294967295} [8]
  [9] %BB29 {4294967295,4294967295} [8]
[10] %BB6 {4294967295,4294967295} [9]
  [9] %BB22 {4294967295,4294967295} [8]
  [9] %BB20 {4294967295,4294967295} [8]
  [9] %BB21 {4294967295,4294967295} [8]
[8] %BB10 {4294967295,4294967295} [7]
[8] %BB9 {4294967295,4294967295} [7]
[8] %BB7 {4294967295,4294967295} [7]
[4] %BB19 {4294967295,4294967295} [3]

If we use Lazy update strategy instead of Eager, the very same tests passes.

I stepped over it while working on improving LoopSimplifyCFG. I worked this bug
around by patch https://reviews.llvm.org/D57316. But it seems that it is a very
fundamental problem that compromises the DomTree updater.

-- 
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 40529] New: Reorder the fldcw w.r.t fmul in x86_64 fix , results in wrong output.

2019-01-30 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=40529

Bug ID: 40529
   Summary: Reorder the  fldcw w.r.t fmul in x86_64 fix ,results
in wrong output.
   Product: clang
   Version: trunk
  Hardware: Other
OS: Linux
Status: NEW
  Severity: normal
  Priority: P
 Component: LLVM Codegen
  Assignee: unassignedclangb...@nondot.org
  Reporter: umesh.kalap...@gmail.com
CC: llvm-bugs@lists.llvm.org, neeil...@live.com,
richard-l...@metafoo.co.uk

the below llvm code : 

  define linkonce_odr dso_local dereferenceable(96)
%"class.std::basic_ostream"*
@_ZSt6_WriteIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_e(%"class.std::basic_ostream"*
dereferenceable(96) %_Os, x86_fp80 %_Dx) local_unnamed_addr #4 comdat {
entry:
  %_Ex = alloca i32, align 4
  %0 = bitcast i32* %_Ex to i8*
  call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %0) #8
  %call = call x86_fp80 @frexpl(x86_fp80 %_Dx, i32* nonnull %_Ex) #8
  %mul = fmul x86_fp80 %call, 0xK401E8000
  %conv = fptosi x86_fp80 %mul to i64
  %conv1 = sitofp i64 %conv to x86_fp80
  %sub = fsub x86_fp80 %mul, %conv1
  %call2 = tail call dereferenceable(96) %"class.std::basic_ostream"*
@_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(%"class.std::basic_ostream"*
nonnull dereferenceable(96) %_Os, i8 signext 32)
  %call3 = tail call dereferenceable(96) %"class.std::basic_ostream"*
@_ZNSolsEl(%"class.std::basic_ostream"* nonnull %call2, i64 %conv)
  %mul.1 = fmul x86_fp80 %sub, 0xK401E8000
  %conv.1 = fptosi x86_fp80 %mul.1 to i64
  %conv1.1 = sitofp i64 %conv.1 to x86_fp80
  %sub.1 = fsub x86_fp80 %mul.1, %conv1.1
  %call2.1 = tail call dereferenceable(96) %"class.std::basic_ostream"*
@_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(%"class.std::basic_ostream"*
nonnull dereferenceable(96) %_Os, i8 signext 32)
  %call3.1 = tail call dereferenceable(96) %"class.std::basic_ostream"*
@_ZNSolsEl(%"class.std::basic_ostream"* nonnull %call2.1, i64 %conv.1)
  %mul.2 = fmul x86_fp80 %sub.1, 0xK401E8000
  %conv.2 = fptosi x86_fp80 %mul.2 to i64
  %conv1.2 = sitofp i64 %conv.2 to x86_fp80
  %sub.2 = fsub x86_fp80 %mul.2, %conv1.2
  %call2.2 = tail call dereferenceable(96) %"class.std::basic_ostream"*
@_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(%"class.std::basic_ostream"*
nonnull dereferenceable(96) %_Os, i8 signext 32)
  %call3.2 = tail call dereferenceable(96) %"class.std::basic_ostream"*
@_ZNSolsEl(%"class.std::basic_ostream"* nonnull %call2.2, i64 %conv.2)
  %mul.3 = fmul x86_fp80 %sub.2, 0xK401E8000
  %conv.3 = fptosi x86_fp80 %mul.3 to i64
  %call2.3 = tail call dereferenceable(96) %"class.std::basic_ostream"*
@_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(%"class.std::basic_ostream"*
nonnull dereferenceable(96) %_Os, i8 signext 32)
  %call3.3 = tail call dereferenceable(96) %"class.std::basic_ostream"*
@_ZNSolsEl(%"class.std::basic_ostream"* nonnull %call2.3, i64 %conv.3)
  %call4 = tail call dereferenceable(96) %"class.std::basic_ostream"*
@_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(%"class.std::basic_ostream"*
nonnull dereferenceable(96) %_Os, i8 signext 32)
%1 = load i32, i32* %_Ex, align 4, !tbaa !64
  %call5 = tail call dereferenceable(96) %"class.std::basic_ostream"*
@_ZNSolsEi(%"class.std::basic_ostream"* nonnull %call4, i32 %1)
  call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %0) #8
  ret %"class.std::basic_ostream"* %_Os
}

in the X86 backend ,when we have statements that converts  the "double" to
"long long " then backend sets the rounding to  "round to zero"  by emitting
the following instruction ,before conversion like 

MOV16mi %stack.8, 1, $noreg, 0, $noreg, 3199 :: (store 2 into %stack.8)
  FLDCW16m %stack.8, 1, $noreg, 0, $noreg, implicit-def dead $fpsw :: (load 2
from %stack.8)
  MOV16mr %stack.8, 1, $noreg, 0, $noreg, %32:gr16 :: (store 2 into %stack.8)
  IST_Fp64m80 %stack.7, 1, $noreg, 0, $noreg, %6:rfp80, implicit-def dead $fpsw

and restore previous FDCW status after conversion ,but

the msched scheduler recording the "FLDCW16m along mov16mi " before
"LD_Fp32m80" attached the log(msched.log)  for the reference ,results the below
code and gives not the precise output.

:
 pushq   %rbp
.cfi_def_cfa_offset 16
.cfi_offset %rbp, -16
movq%rsp, %rbp
.cfi_def_cfa_register %rbp
pushq   %r14
pushq   %rbx
subq$112, %rsp
.cfi_offset %rbx, -32
.cfi_offset %r14, -24
movq%rdi, %r14
fldt16(%rbp)
fstpt   (%rsp)
leaq-40(%rbp), %rdi
callq   frexpl
fnstcw  -24(%rbp)
flds.LCPI83_0(%rip)
fld %st(0)
fstpt   -52(%rbp)   # 10-byte Folded Spill
movzwl  -24(%rbp), %eax
movw$3199, -24(%rbp)# imm = 0xC7F
fldcw  

[llvm-bugs] [Bug 33732] -fsanitize-coverage=trace-cmp passes parameters incorrectly

2019-01-30 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=33732

Alexander Potapenko  changed:

   What|Removed |Added

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

--- Comment #4 from Alexander Potapenko  ---
Think so.

-- 
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 40530] New: Please backport r352610 to 8.0 ([clang] [Driver] [NetBSD] Append -rpath for shared compiler-rt runtimes)

2019-01-30 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=40530

Bug ID: 40530
   Summary: Please backport r352610 to 8.0 ([clang] [Driver]
[NetBSD] Append -rpath for shared compiler-rt
runtimes)
   Product: clang
   Version: trunk
  Hardware: PC
OS: Linux
Status: NEW
  Severity: enhancement
  Priority: P
 Component: -New Bugs
  Assignee: unassignedclangb...@nondot.org
  Reporter: mgo...@gentoo.org
CC: htmldevelo...@gmail.com, llvm-bugs@lists.llvm.org,
neeil...@live.com, richard-l...@metafoo.co.uk
Blocks: 40331

Please backport r352610 to 8.0 branch.  TIA.


[clang] [Driver] [NetBSD] Append -rpath for shared compiler-rt runtimes

Append appropriate -rpath when using shared compiler-rt runtimes,
e.g. '-fsanitize=address -shared-libasan'.  There's already a similar
logic in CommonArgs.cpp but it uses non-standard arch-suffixed
installation directory while we want our driver to work with standard
installation paths.

Differential Revision: https://reviews.llvm.org/D57303


Referenced Bugs:

https://bugs.llvm.org/show_bug.cgi?id=40331
[Bug 40331] [meta] 8.0.0 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 37698] [llvm-exegesis] Throughput calculations

2019-01-30 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=37698

Clement Courbet  changed:

   What|Removed |Added

 Resolution|--- |FIXED
 Status|NEW |RESOLVED
   Assignee|unassignedb...@nondot.org   |clement.cour...@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 40531] New: TEST 'libomp :: ompt/synchronization/lock.c' FAILED on 32-bit x86

2019-01-30 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=40531

Bug ID: 40531
   Summary: TEST 'libomp :: ompt/synchronization/lock.c' FAILED on
32-bit x86
   Product: OpenMP
   Version: unspecified
  Hardware: PC
OS: Linux
Status: NEW
  Severity: normal
  Priority: P
 Component: Runtime Library
  Assignee: unassignedb...@nondot.org
  Reporter: mgo...@gentoo.org
CC: llvm-bugs@lists.llvm.org
Blocks: 40331

Created attachment 21408
  --> https://bugs.llvm.org/attachment.cgi?id=21408&action=edit
sys-libs:libomp-8.0.:20190130-161231.log

 TEST 'libomp :: ompt/synchronization/lock.c' FAILED

Script:
--
: 'RUN: at line 1';   /usr/lib64/ccache/bin/i686-pc-linux-gnu-clang
-fno-experimental-isel -fopenmp  -I
/var/tmp/portage/sys-libs/libomp-8.0./work/libomp-8.0./runtime/test -I
/var/tmp/portage/sys-libs/libomp-8.0./work/libomp-8.0.-abi_x86_32.x86/runtime/src
-L
/var/tmp/portage/sys-libs/libomp-8.0./work/libomp-8.0.-abi_x86_32.x86/runtime/src
 -I
/var/tmp/portage/sys-libs/libomp-8.0./work/libomp-8.0./runtime/test/ompt
/var/tmp/portage/sys-libs/libomp-8.0./work/libomp-8.0./runtime/test/ompt/synchronization/lock.c
-o
/var/tmp/portage/sys-libs/libomp-8.0./work/libomp-8.0.-abi_x86_32.x86/runtime/test/ompt/synchronization/Output/lock.c.tmp
-lm -latomic &&
/var/tmp/portage/sys-libs/libomp-8.0./work/libomp-8.0.-abi_x86_32.x86/runtime/test/ompt/synchronization/Output/lock.c.tmp
| tee
/var/tmp/portage/sys-libs/libomp-8.0./work/libomp-8.0./runtime/test/ompt/synchronization/lock.c.out
| /usr/lib/llvm/8/bin/FileCheck
/var/tmp/portage/sys-libs/libomp-8.0./work/libomp-8.0./runtime/test/ompt/synchronization/lock.c
--
Exit Code: 1

Command Output (stdout):
--
$ ":" "RUN: at line 1"
$ "/usr/lib64/ccache/bin/i686-pc-linux-gnu-clang" "-fno-experimental-isel"
"-fopenmp" "-I"
"/var/tmp/portage/sys-libs/libomp-8.0./work/libomp-8.0./runtime/test"
"-I"
"/var/tmp/portage/sys-libs/libomp-8.0./work/libomp-8.0.-abi_x86_32.x86/runtime/src"
"-L"
"/var/tmp/portage/sys-libs/libomp-8.0./work/libomp-8.0.-abi_x86_32.x86/runtime/src"
"-I"
"/var/tmp/portage/sys-libs/libomp-8.0./work/libomp-8.0./runtime/test/ompt"
"/var/tmp/portage/sys-libs/libomp-8.0./work/libomp-8.0./runtime/test/ompt/synchronization/lock.c"
"-o"
"/var/tmp/portage/sys-libs/libomp-8.0./work/libomp-8.0.-abi_x86_32.x86/runtime/test/ompt/synchronization/Output/lock.c.tmp"
"-lm" "-latomic"
$
"/var/tmp/portage/sys-libs/libomp-8.0./work/libomp-8.0.-abi_x86_32.x86/runtime/test/ompt/synchronization/Output/lock.c.tmp"
$ "tee"
"/var/tmp/portage/sys-libs/libomp-8.0./work/libomp-8.0./runtime/test/ompt/synchronization/lock.c.out"
$ "/usr/lib/llvm/8/bin/FileCheck"
"/var/tmp/portage/sys-libs/libomp-8.0./work/libomp-8.0./runtime/test/ompt/synchronization/lock.c"
# command stderr:
/var/tmp/portage/sys-libs/libomp-8.0./work/libomp-8.0./runtime/test/ompt/synchronization/lock.c:33:12:
error: CHECK: expected string not found in input
 // CHECK: {{^}}[[MASTER_ID]]: ompt_event_init_lock: wait_id=[[WAIT_ID]],
hint={{[0-9]+}}, impl={{[0-9]+}},
codeptr_ra=[[RETURN_ADDRESS:0x[0-f]+]]{{[0-f][0-f]}}
   ^
:10:1: note: scanning from here
281474976710657: ompt_event_init_lock: wait_id=18446744073706479000, hint=0,
impl=2, codeptr_ra=0x804b1c6 
^
:10:1: note: with variable "MASTER_ID" equal to "281474976710657"
281474976710657: ompt_event_init_lock: wait_id=18446744073706479000, hint=0,
impl=2, codeptr_ra=0x804b1c6 
^
:10:1: note: with variable "WAIT_ID" equal to "4291894680"
281474976710657: ompt_event_init_lock: wait_id=18446744073706479000, hint=0,
impl=2, codeptr_ra=0x804b1c6 
^

error: command failed with exit status: 1

--



I've discovered it while testing for 8.0 release but I can also reproduce it
with trunk and 7.0.1.  I don't really recall if I haven't tested 7.0 on x86; it
might be also caused by glibc upgrade.


Referenced Bugs:

https://bugs.llvm.org/show_bug.cgi?id=40331
[Bug 40331] [meta] 8.0.0 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 40532] New: Corrupt DWARF created when linking with ld.lld

2019-01-30 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=40532

Bug ID: 40532
   Summary: Corrupt DWARF created when linking with ld.lld
   Product: lld
   Version: unspecified
  Hardware: PC
OS: Linux
Status: NEW
  Severity: normal
  Priority: P
 Component: ELF
  Assignee: unassignedb...@nondot.org
  Reporter: jonasschiev...@gmail.com
CC: llvm-bugs@lists.llvm.org, peter.sm...@linaro.org

Linking two object files together (created by rustc and gcc) results in an
output with corrupt debug info.

Running `objdump --dwarf-check -g ` on the linker output reports this
warning a few times:

objdump: Warning: Corrupt unit length (0x0) found in section .debug_info

When run on the object files before linking, no warning is issued. The
dwarf-validate tool of the gimli library agrees with this
(https://github.com/gimli-rs/gimli).

I've attached the output of LLD with --reproduce.

For more info, refer to
https://github.com/jonas-schievink/lldbug/releases/tag/lldrepro-min (but
lldrepro-min should already contain everything if I understood it correctly).

LLD version: LLD 7.0.1

-- 
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 40533] New: std::minmax_element is 3 times slower than hand written loop

2019-01-30 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=40533

Bug ID: 40533
   Summary: std::minmax_element is 3 times slower than hand
written loop
   Product: libc++
   Version: unspecified
  Hardware: PC
OS: Linux
Status: NEW
  Severity: enhancement
  Priority: P
 Component: All Bugs
  Assignee: unassignedclangb...@nondot.org
  Reporter: antosh...@gmail.com
CC: llvm-bugs@lists.llvm.org, mclow.li...@gmail.com

Moreover, std::minmax_element is slower than calling
std::min_element+std::max_element if there's a lot of data and it does not fit
into the CPU cache: http://quick-bench.com/tlgxCx9CUMZgOfYbwhFaEI0WNOg

-- 
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 40534] New: Failure to leverage existing memory location when spilling

2019-01-30 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=40534

Bug ID: 40534
   Summary: Failure to leverage existing memory location when
spilling
   Product: libraries
   Version: trunk
  Hardware: PC
OS: Linux
Status: NEW
  Severity: enhancement
  Priority: P
 Component: Register Allocator
  Assignee: unassignedb...@nondot.org
  Reporter: listm...@philipreames.com
CC: llvm-bugs@lists.llvm.org, quentin.colom...@gmail.com

Filing this under register allocator, but really not sure that's the
appropriate place to fix it.  The basic problem - illustrated by the test below
- is that we can have a value live in a loop which changes on every iteration,
but already has a memory location available w/said contents.  Instead of
inserting new spill slots, it would be ideal to reuse the existing locations.  

This particular example was motivated by our statepoint lowering - which
unfortunately, appears to create such idioms - but the problem is visible in
arbitrary IR as well.  For statepoints, doing this at the MI layer would be
preferred, but I see a lot of argument for this being a missed IR level
PRE-like store transform as well.  

declare void @clobber()
declare void @use(...)

define void @test(i64* %p, i64 %cnt) {
entry:
  %p1 = getelementptr i64, i64* %p, i64 1
  %p2 = getelementptr i64, i64* %p, i64 2
  %p3 = getelementptr i64, i64* %p, i64 3
  %p4 = getelementptr i64, i64* %p, i64 4
  %p5 = getelementptr i64, i64* %p, i64 5
  %p6 = getelementptr i64, i64* %p, i64 6
  %p7 = getelementptr i64, i64* %p, i64 7
  %p8 = getelementptr i64, i64* %p, i64 8
  %p9 = getelementptr i64, i64* %p, i64 9
  %p10 = getelementptr i64, i64* %p, i64 10
  %p11 = getelementptr i64, i64* %p, i64 11
  %p12 = getelementptr i64, i64* %p, i64 12
  %p13 = getelementptr i64, i64* %p, i64 13
  %p14 = getelementptr i64, i64* %p, i64 14

  store i64 0, i64* %p
  store i64 0, i64* %p1
  store i64 0, i64* %p2
  store i64 0, i64* %p3
  store i64 0, i64* %p4
  store i64 0, i64* %p5
  store i64 0, i64* %p6
  store i64 0, i64* %p7
  store i64 0, i64* %p8
  store i64 0, i64* %p9
  store i64 0, i64* %p10
  store i64 0, i64* %p11
  store i64 0, i64* %p12
  store i64 0, i64* %p13
  store i64 0, i64* %p14
  br label %loop

loop:
  %iv = phi i64 [0, %entry], [%iv.next, %loop]

  %v1 = phi i64 [0, %entry], [%v2, %loop]
  %v1p1 = phi i64 [0, %entry], [%v2p1, %loop]
  %v1p2 = phi i64 [0, %entry], [%v2p2, %loop]
  %v1p3 = phi i64 [0, %entry], [%v2p3, %loop]
  %v1p4 = phi i64 [0, %entry], [%v2p4, %loop]
  %v1p5 = phi i64 [0, %entry], [%v2p5, %loop]
  %v1p6 = phi i64 [0, %entry], [%v2p6, %loop]
  %v1p7 = phi i64 [0, %entry], [%v2p7, %loop]
  %v1p8 = phi i64 [0, %entry], [%v2p8, %loop]
  %v1p9 = phi i64 [0, %entry], [%v2p9, %loop]
  %v1p10 = phi i64 [0, %entry], [%v2p10, %loop]
  %v1p11 = phi i64 [0, %entry], [%v2p11, %loop]
  %v1p12 = phi i64 [0, %entry], [%v2p12, %loop]
  %v1p13 = phi i64 [0, %entry], [%v2p13, %loop]
  %v1p14 = phi i64 [0, %entry], [%v2p14, %loop]
  store i64 %v1, i64* %p
  store i64 %v1p1, i64* %p1
  store i64 %v1p2, i64* %p2
  store i64 %v1p3, i64* %p3
  store i64 %v1p4, i64* %p4
  store i64 %v1p5, i64* %p5
  store i64 %v1p6, i64* %p6
  store i64 %v1p7, i64* %p7
  store i64 %v1p8, i64* %p8
  store i64 %v1p9, i64* %p9
  store i64 %v1p9, i64* %p10
  store i64 %v1p10, i64* %p11
  store i64 %v1p12, i64* %p12
  store i64 %v1p13, i64* %p13
  store i64 %v1p14, i64* %p14
  call void @clobber()
  %v2 = load i64, i64* %p
  %v2p1 = load i64, i64* %p1
  %v2p2 = load i64, i64* %p2
  %v2p3 = load i64, i64* %p3
  %v2p4 = load i64, i64* %p4
  %v2p5 = load i64, i64* %p5
  %v2p6 = load i64, i64* %p6
  %v2p7 = load i64, i64* %p7
  %v2p8 = load i64, i64* %p8
  %v2p9 = load i64, i64* %p9
  %v2p10 = load i64, i64* %p10
  %v2p11 = load i64, i64* %p11
  %v2p12 = load i64, i64* %p12
  %v2p13 = load i64, i64* %p13
  %v2p14 = load i64, i64* %p14

  %iv.next = add i64 %iv, 1
  %exit.cmp = icmp sgt i64 %iv, 200
  br i1 %exit.cmp, label %exit, label %loop

exit:
  call void (...) @use(i64 %v2)
  ret void
}

$ ../build/bin/opt -O1 -S loop-stld.ll  | ../build/bin/llc  -O3
.text
.file   "loop-stld.ll"
.globl  test# -- Begin function test
.p2align4, 0x90
.type   test,@function
test:   # @test
.cfi_startproc
# %bb.0:# %entry
pushq   %rbp
.cfi_def_cfa_offset 16
pushq   %r15
.cfi_def_cfa_offset 24
pushq   %r14
.cfi_def_cfa_offset 32
pushq   %r13
.cfi_def_cfa_offset 40
pushq   %r12
.cfi_def_cfa_offset 48
pushq   %rbx
.cfi_def_cfa_offset 56
subq$24, %rsp
.cfi_def_cfa_offset 80
.cfi_offset %rbx, -56
.cfi_offset %r12, -48
.cfi_offset %r13, -40
.cfi_offset %r14, -32

[llvm-bugs] [Bug 40331] [meta] 8.0.0 Release Blockers

2019-01-30 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=40331
Bug 40331 depends on bug 40530, which changed state.

Bug 40530 Summary: Please backport r352610 to 8.0 ([clang] [Driver] [NetBSD] 
Append -rpath for shared compiler-rt runtimes)
https://bugs.llvm.org/show_bug.cgi?id=40530

   What|Removed |Added

 Status|NEW |RESOLVED
 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 40530] Please backport r352610 to 8.0 ([clang] [Driver] [NetBSD] Append -rpath for shared compiler-rt runtimes)

2019-01-30 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=40530

Hans Wennborg  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||h...@chromium.org
 Resolution|--- |FIXED

--- Comment #1 from Hans Wennborg  ---
Merged in r352650. Thanks!

-- 
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 36160] Support --discard-locals in llvm-objcopy

2019-01-30 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=36160

Jordan Rupprecht  changed:

   What|Removed |Added

 Resolution|--- |FIXED
 Fixed By Commit(s)||https://reviews.llvm.org/rL
   ||352626
 Status|CONFIRMED   |RESOLVED

-- 
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 40535] New: Error message for incorrectly specified constructor method is unhelpful

2019-01-30 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=40535

Bug ID: 40535
   Summary: Error message for incorrectly specified constructor
method is unhelpful
   Product: clang
   Version: unspecified
  Hardware: All
OS: All
Status: NEW
  Severity: enhancement
  Priority: P
 Component: C++
  Assignee: unassignedclangb...@nondot.org
  Reporter: rgovos...@gmail.com
CC: blitzrak...@gmail.com, dgre...@apple.com,
erik.pilking...@gmail.com, llvm-bugs@lists.llvm.org,
richard-l...@metafoo.co.uk

class Foo {
Foo(int x);
};

Foo(int x) {
// nothing
}

Compiling this code gives the following error messages:

foo.cpp:5:5: error: expected unqualified-id
Foo(int x) {
^
foo.cpp:5:5: error: expected ')'
foo.cpp:5:4: note: to match this '('
Foo(int x) {
   ^
2 errors generated.

The actual problem is that I should have written:

Foo::Foo(int x) {
// nothing
}

This mistake was easy because I moved the implementation of Foo::Foo from
inside the class, where it doesn't need to be qualified with the class name, to
outside the class, where it does.

clang version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)

-- 
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 40204] [WebAssembly] SDL2_mixer crash on linking with --relocatable

2019-01-30 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=40204

Sam Clegg  changed:

   What|Removed |Added

 Resolution|--- |FIXED
 Status|CONFIRMED   |RESOLVED

-- 
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 40537] New: [lld] Merge r352407, r352435, r352482 and r352606 into the 8.0 branch

2019-01-30 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=40537

Bug ID: 40537
   Summary: [lld] Merge r352407, r352435, r352482 and r352606 into
the 8.0 branch
   Product: lld
   Version: unspecified
  Hardware: PC
OS: All
Status: NEW
  Severity: release blocker
  Priority: P
 Component: ELF
  Assignee: unassignedb...@nondot.org
  Reporter: dimi...@andric.com
CC: llvm-bugs@lists.llvm.org, peter.sm...@linaro.org

This revision: https://reviews.llvm.org/rL352606 ("Recognize FreeBSD specific
BFD names in OUTPUT_FORMAT") adds FreeBSD specific BFD target names to
OUTPUT_FORMAT linker script commands.

It has a few prerequisites, all of which are due to some refactoring in that
area:

https://reviews.llvm.org/rL352407 ("Refactoring. NFC")
https://reviews.llvm.org/rL352435 ("Attempt to fix build failure with GCC 5.4")
https://reviews.llvm.org/rL352482 ("[ELF] - Remove dead `readBfdName`
declaration. NFC")

-- 
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 40536] New: undefined reference to __kmpc_push_target_tripcount

2019-01-30 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=40536

Bug ID: 40536
   Summary: undefined reference to __kmpc_push_target_tripcount
   Product: OpenMP
   Version: unspecified
  Hardware: PC
OS: Linux
Status: NEW
  Severity: normal
  Priority: P
 Component: Clang Compiler Support
  Assignee: a.bat...@hotmail.com
  Reporter: jdenny.o...@gmail.com
CC: llvm-bugs@lists.llvm.org

At r352640 and since r350571, some directives cause an undefined reference to
__kmpc_push_target_tripcount.  For example:

```
$ cat test.c
int main() {
  #pragma omp target teams
  #pragma omp distribute
  for (int i = 0; i < 8; ++i)
;
  return 0;
}
$ clang -fopenmp test.c
/tmp/test-b61bc4.o: In function `main':
test.c:(.text+0x1c): undefined reference to `__kmpc_push_target_tripcount'
clang-8: error: linker command failed with exit code 1 (use -v to see
invocation)
$ clang -fopenmp -lomptarget test.c
$ ./a.out 
Libomptarget fatal error 1: default offloading policy must switched to
mandatory or disabled
$ clang -fopenmp -fopenmp-targets=nvptx64 test.c
$ ./a.out
$ echo $?
0
```

-- 
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 40519] clang++ fails to compile SFINAE member function overloaded with using-imported fallback function from base class

2019-01-30 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=40519

Richard Smith  changed:

   What|Removed |Added

 Resolution|--- |LATER
 Status|NEW |RESOLVED

--- Comment #2 from Richard Smith  ---
See http://eel.is/c++draft/namespace.udecl#15:

"When a using-declarator brings declarations from a base class into a derived
class, member functions and member function templates in the derived class
override and/or hide member functions and member function templates with the
same name, parameter-type-list, cv-qualification, and ref-qualifier (if any) in
a base class (rather than conflicting). Such hidden or overridden declarations
are excluded from the set of declarations introduced by the using-declarator."

The base class function template is hidden by the derived class one despite
having a different return type and despite the use of a using declaration.

GCC doesn't implement that rule as-written; there's a chance the language will
be changed to do something more like what GCC does, but for now this is a GCC
bug and the other compilers are correct.

-- 
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 40528] [DTU] DomTreeUpdater's Eager strategy fails to update DomTree, Lazy strategy works OK

2019-01-30 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=40528

Jakub Kuderski  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |INVALID

-- 
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 40538] New: DebugInfo: Should Clang cc1as be calling setMCLineTableRootFile

2019-01-30 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=40538

Bug ID: 40538
   Summary: DebugInfo: Should Clang cc1as be calling
setMCLineTableRootFile
   Product: libraries
   Version: trunk
  Hardware: PC
OS: Linux
Status: NEW
  Severity: enhancement
  Priority: P
 Component: DebugInfo
  Assignee: paul.robin...@am.sony.com
  Reporter: dblai...@gmail.com
CC: jdevliegh...@apple.com, keith.wal...@arm.com,
llvm-bugs@lists.llvm.org,
paul_robin...@playstation.sony.com

(Relevant context on the review thread of r328805, and related commit r352541)

There seems to be an unexplained difference between assembling code with
llvm-mc and with Clang's cc1as using DWARFv5 - llvm-mc calls
setMCLineTableRootFile and cc1as does not. At least in my data, this was
related to/lead to llvm-mc successfully assembling an empty asm file, and cc1as
crashing on it (until the fix in r352541), though Paul Robinson observed a
crash in llvm-mc as well.

Looks like setMCLineTableRootFile does useful things like including the source
and md5sum of the file, if desired, for the DWARFv5 output.

So it'd be good to resolve this one way or the other - remove the function, or
add a call to it from cc1as, so the two uses are symmetric (or explain why they
shouldn't be symmetric here).

-- 
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 40539] New: [X86] PostRAScheduler can reorder inline assembly containing x87 instructions with other x87 instructions used to get the results from the inline assembly.

2019-01-30 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=40539

Bug ID: 40539
   Summary: [X86] PostRAScheduler can reorder inline assembly
containing x87 instructions with other x87
instructions used to get the results from the inline
assembly.
   Product: libraries
   Version: trunk
  Hardware: PC
OS: Windows NT
Status: NEW
  Severity: enhancement
  Priority: P
 Component: Backend: X86
  Assignee: unassignedb...@nondot.org
  Reporter: craig.top...@gmail.com
CC: craig.top...@gmail.com, llvm-bugs@lists.llvm.org,
llvm-...@redking.me.uk, spatel+l...@rotateright.com

This test case when compiled with -mtriple=i686 -mcpu=pentium4

@f1 = global float 1.00e+00, align 4

define zeroext i1 @_Z9test_log2v() {
entry:
  %0 = load float, float* @f1, align 4
  %1 = fpext float %0 to x86_fp80
  %2 = tail call x86_fp80 asm "fld1; fxch; fyl2x",
"={st},0,~{st(1)},~{dirflag},~{fpsr},~{flags}"(x86_fp80 %1)
  %conv = fptrunc x86_fp80 %2 to float
  %3 = fcmp oeq float %conv, 0.00e+00
  ret i1 %3
}

Will generate this assembly


pushl   %eax
.cfi_def_cfa_offset 8
fldsf1
fstps   (%esp)
xorps   %xmm0, %xmm0
#APP
fld1
fxch%st(1)
fyl2x
#NO_APP
cmpeqss (%esp), %xmm0
movd%xmm0, %eax
andl$1, %eax
# kill: def $al killed $al killed $eax
popl%ecx
.cfi_def_cfa_offset 4
retl


The fstps instruction needs to be below the inline assembly block. It's
supposed to store the results from the inline assembly.

-- 
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 40536] undefined reference to __kmpc_push_target_tripcount

2019-01-30 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=40536

Alexey Bataev  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Fixed By Commit(s)||r352669
 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 40540] New: Rename COMDATs when renaming COMDAT leader for CFI

2019-01-30 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=40540

Bug ID: 40540
   Summary: Rename COMDATs when renaming COMDAT leader for CFI
   Product: new-bugs
   Version: 8.0
  Hardware: PC
OS: Windows NT
Status: NEW
  Severity: enhancement
  Priority: P
 Component: new bugs
  Assignee: unassignedb...@nondot.org
  Reporter: dma...@mozilla.com
CC: htmldevelo...@gmail.com, llvm-bugs@lists.llvm.org,
pe...@pcc.me.uk, tejohn...@google.com

In bug 40414 comment #15, Teresa Johnson writes:

> This turns out to be a separate instance of renaming provoking this issue.
> In this case, the module was split due to CFI, and no renaming/promotion was
> required since the comdat and the leader are in the same module.
> 
> However, in LowerTypeTests.cpp a ".cfi" suffix is added to the function
> definition which is the comdat leader, provoking the same error. This is an
> existing issue unrelated to the one provoked by changing the splitting
> default. Probably needs a separate bug to track. You could cc
> pe...@pcc.me.uk and myself.

-- 
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 39685] Inserting an element to an undef vector

2019-01-30 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=39685

Heejin Ahn  changed:

   What|Removed |Added

 Status|CONFIRMED   |RESOLVED
 Resolution|--- |FIXED

--- Comment #3 from Heejin Ahn  ---
Fixed by r352592.

-- 
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 40524] INVOKEing pointer to const&-qualified member function with rvalue results in an error

2019-01-30 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=40524

Eric Fiselier  changed:

   What|Removed |Added

 Resolution|--- |FIXED
 Status|NEW |RESOLVED
 CC||e...@efcs.ca

--- Comment #1 from Eric Fiselier  ---
Invoking a pointer to a 'const &' member function on an rvalue is a C++2a
extension. Prior to C++2a GCC and Clang accept it as conforming extension. But
in order for the extension to be conforming, it has to be disabled in SFINAE
contexts -- otherwise it could change the meaning of well-defined code.

If you compile your example with -std=c++17 -pedantic-errors then both
invocations are rejected. (https://godbolt.org/z/ofS4AB)

Both libc++ and libstdc++ reject this prior to C++2a but accept it after. This
is the correct behavior. There is nothing to do here.

-- 
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 40524] INVOKEing pointer to const&-qualified member function with rvalue results in an error

2019-01-30 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=40524

Eric Fiselier  changed:

   What|Removed |Added

 Resolution|FIXED   |INVALID

-- 
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 40541] New: LLVM 8 stopped optimizing pow(2., x) to exp2(x)

2019-01-30 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=40541

Bug ID: 40541
   Summary: LLVM 8 stopped optimizing pow(2., x) to exp2(x)
   Product: clang
   Version: 8.0
  Hardware: PC
OS: Windows NT
Status: NEW
  Severity: enhancement
  Priority: P
 Component: -New Bugs
  Assignee: unassignedclangb...@nondot.org
  Reporter: dma...@mozilla.com
CC: e.mene...@samsung.com, htmldevelo...@gmail.com,
llvm-bugs@lists.llvm.org, neeil...@live.com,
richard-l...@metafoo.co.uk

We noticed this on 32-bit clang-cl builds.

#include 
float foo(double d) { return pow(2., d / 1200.); }

> d:\clang7.0.1\bin\clang-cl -m32 -O2 -c exp2.cpp
> dumpbin /all exp2.obj | findstr REL32
 0017  REL32   F  _exp2

> d:\clang8rc1\bin\clang-cl -m32 -O2 -c exp2.cpp
> dumpbin /all exp2.obj | findstr REL32
 002C  REL32  11  _pow

At first glance I'm suspecting a bug in
https://github.com/llvm/llvm-project/commit/2123ea7d5c722e98ce0f047c8baa3fb3db23e6b3.

-- 
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 40267] SplitVecOp_EXTRACT_VECTOR_ELT - Invalid vector index!

2019-01-30 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=40267

Thomas Lively  changed:

   What|Removed |Added

 Status|CONFIRMED   |RESOLVED
 Resolution|--- |FIXED

--- Comment #5 from Thomas Lively  ---
This is fixed in rL352702.

-- 
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 12437 in oss-fuzz: llvm/llvm-isel-fuzzer--wasm32-O2: ASSERT: IdxVal < VecVT.getVectorNumElements() && "Invalid vector index!"

2019-01-30 Thread tliv… via monorail via llvm-bugs


Comment #2 on issue 12437 by tliv...@google.com:  
llvm/llvm-isel-fuzzer--wasm32-O2: ASSERT: IdxVal <  
VecVT.getVectorNumElements() && "Invalid vector index!"

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

This is fixed in LLVM commit rL352702. In the future, would it be possible  
to have WebAssembly LLVM backend bugs reported directly to the WebAssembly  
tools team?


--
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 40542] New: unsupported flag -n

2019-01-30 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=40542

Bug ID: 40542
   Summary: unsupported flag -n
   Product: lld
   Version: unspecified
  Hardware: PC
OS: Linux
Status: NEW
  Severity: enhancement
  Priority: P
 Component: ELF
  Assignee: unassignedb...@nondot.org
  Reporter: ndesaulni...@google.com
CC: gri...@accesssoftek.com, llvm-bugs@lists.llvm.org,
peter.sm...@linaro.org, r...@google.com,
srhi...@google.com

The arm64 linux kernel vdso Makefile makes use of `$(CC) -Wl,-n` when linking. 
This produces an error when trying to link with ld.lld.

I can link without it, but I'm unsure of the implications of turning it off. 
The man page for bfd suggests that sections will be page aligned, so I'm
guessing that's going to create a larger object than needed?

-- 
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 40543] New: double floating point suffixes D and d not accepted

2019-01-30 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=40543

Bug ID: 40543
   Summary: double floating point suffixes D and d not accepted
   Product: clang
   Version: 7.0
  Hardware: PC
OS: Linux
Status: NEW
  Severity: enhancement
  Priority: P
 Component: -New Bugs
  Assignee: unassignedclangb...@nondot.org
  Reporter: b...@lindev.ch
CC: htmldevelo...@gmail.com, llvm-bugs@lists.llvm.org,
neeil...@live.com, richard-l...@metafoo.co.uk

The line

double d = 0.4D;

causes clang to barf with

test.c:2:14: error: invalid suffix 'D' on floating constant

gcc accepts that code, and this seems to be the correct behavior at least for
C99+.
(see this gcc bug report from 10 years ago:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=39027)

-- 
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 40528] [DTU] DomTreeUpdater's Eager strategy fails to update DomTree, Lazy strategy works OK

2019-01-30 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=40528

Max Kazantsev  changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 Resolution|INVALID |---

--- Comment #2 from Max Kazantsev  ---
Let's keep it open then. If you think it's not a bug, feel free to close as
invalid and update the doc. Otherwise, please close it when it is 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 40543] double floating point suffixes D and d not accepted

2019-01-30 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=40543

Richard Smith  changed:

   What|Removed |Added

 Resolution|--- |LATER
 Status|NEW |RESOLVED

--- Comment #1 from Richard Smith  ---
This is part of the decimal floating point extensions to C, not part of C99 or
any C or C++ standard. Clang does not implement the decimal floating point
extensions to C.

Closing this, because a bug here is not going to cause us to implement this set
of language extensions. If someone motivated wants to implement it, that should
be discussed on our mailing lists.

-- 
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 35611] [meta] Missed fast-math optimizations

2019-01-30 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=35611
Bug 35611 depends on bug 35594, which changed state.

Bug 35594 Summary: Missed optimization in math expression: simplify calls 
std::exp functions
https://bugs.llvm.org/show_bug.cgi?id=35594

   What|Removed |Added

 Status|CONFIRMED   |RESOLVED
 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 35594] Missed optimization in math expression: simplify calls std::exp functions

2019-01-30 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=35594

Dmitry Venikov  changed:

   What|Removed |Added

 Status|CONFIRMED   |RESOLVED
 Resolution|--- |FIXED

--- Comment #4 from Dmitry Venikov  ---
Commits: rL352613, rL352730

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