[llvm-bugs] [Bug 38417] New: clang: python bindings, test_code_complete_availability fails

2018-08-02 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=38417

Bug ID: 38417
   Summary: clang: python bindings,
test_code_complete_availability fails
   Product: clang
   Version: 7.0
  Hardware: PC
OS: Linux
Status: NEW
  Severity: enhancement
  Priority: P
 Component: -New Bugs
  Assignee: unassignedclangb...@nondot.org
  Reporter: mgo...@gentoo.org
CC: llvm-bugs@lists.llvm.org
Blocks: 38406

Created attachment 20633
  --> https://bugs.llvm.org/attachment.cgi?id=20633&action=edit
dev-python:clang-python-7.0.:20180802-074944.log

This is a regression since 6.0*.

==
FAIL: test_code_complete_availability
(tests.cindex.test_code_completion.TestCodeCompletion)
--
Traceback (most recent call last):
  File
"/var/tmp/portage/dev-python/clang-python-7.0./work/clang-python-7.0./bindings/python/tests/cindex/test_code_completion.py",
line 70, in test_code_complete_availability
self.check_completion_results(cr, expected)
  File
"/var/tmp/portage/dev-python/clang-python-7.0./work/clang-python-7.0./bindings/python/tests/cindex/test_code_completion.py",
line 14, in check_completion_results
self.assertIn(c, completions)
AssertionError: "{'const', TypedText} || Priority: 40 || Availability:
Available || Brief comment: None" not found in ["{'P', TypedText} || Priority:
50 || Availability: Available || Brief comment: None", "{'Q', TypedText} ||
Priority: 50 || Availability: Available || Brief comment: None", "{'namespace',
TypedText} | {' ', HorizontalSpace} | {'name', Placeholder} | {'=', Equal} |
{'namespace', Placeholder} || Priority: 40 || Availability: Available || Brief
comment: None", "{'using', TypedText} | {' ', HorizontalSpace} | {'namespace',
Text} | {' ', HorizontalSpace} | {'identifier', Placeholder} || Priority: 40 ||
Availability: Available || Brief comment: None", "{'asm', TypedText} | {'(',
LeftParen} | {'string-literal', Placeholder} | {')', RightParen} || Priority:
40 || Availability: Available || Brief comment: None", "{'typedef', TypedText}
| {' ', HorizontalSpace} | {'type', Placeholder} | {' ', HorizontalSpace} |
{'name', Placeholder} || Priority: 40 || Availability: Available || Brief
comment: None", "{'using', TypedText} | {' ', HorizontalSpace} | {'qualifier',
Placeholder} | {'::', Text} | {'name', Placeholder} || Priority: 40 ||
Availability: Available || Brief comment: None", "{'extern', TypedText} ||
Priority: 40 || Availability: Available || Brief comment: None", "{'static',
TypedText} || Priority: 40 || Availability: Available || Brief comment: None",
"{'inline', TypedText} || Priority: 40 || Availability: Available || Brief
comment: None", "{'short', TypedText} || Priority: 50 || Availability:
Available || Brief comment: None", "{'long', TypedText} || Priority: 50 ||
Availability: Available || Brief comment: None", "{'signed', TypedText} ||
Priority: 50 || Availability: Available || Brief comment: None", "{'unsigned',
TypedText} || Priority: 50 || Availability: Available || Brief comment: None",
"{'void', TypedText} || Priority: 50 || Availability: Available || Brief
comment: None", "{'char', TypedText} || Priority: 50 || Availability: Available
|| Brief comment: None", "{'int', TypedText} || Priority: 50 || Availability:
Available || Brief comment: None", "{'float', TypedText} || Priority: 50 ||
Availability: Available || Brief comment: None", "{'double', TypedText} ||
Priority: 50 || Availability: Available || Brief comment: None", "{'enum',
TypedText} || Priority: 50 || Availability: Available || Brief comment: None",
"{'struct', TypedText} || Priority: 50 || Availability: Available || Brief
comment: None", "{'union', TypedText} || Priority: 50 || Availability:
Available || Brief comment: None", "{'const', TypedText} || Priority: 50 ||
Availability: Available || Brief comment: None", "{'volatile', TypedText} ||
Priority: 50 || Availability: Available || Brief comment: None", "{'bool',
TypedText} || Priority: 50 || Availability: Available || Brief comment: None&quo

[llvm-bugs] [Bug 38342] vectorized f64->i32 loses bits in f32 intermediate

2018-08-02 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=38342

David Bolvansky  changed:

   What|Removed |Added

 Status|ASSIGNED|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
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 38406] [meta] 7.0.0 Release Blockers

2018-08-02 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=38406
Bug 38406 depends on bug 38342, which changed state.

Bug 38342 Summary: vectorized f64->i32 loses bits in f32 intermediate
https://bugs.llvm.org/show_bug.cgi?id=38342

   What|Removed |Added

 Status|ASSIGNED|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
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 37872] Instcombine: transform shl(inexact shr(x)) with different constant shifts.

2018-08-02 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=37872
Bug 37872 depends on bug 31275, which changed state.

Bug 31275 Summary: Binary rotation is not detected after multiplication
https://bugs.llvm.org/show_bug.cgi?id=31275

   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
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 31275] Binary rotation is not detected after multiplication

2018-08-02 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=31275

Simon Pilgrim  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED
 Fixed By Commit(s)||338270

--- Comment #3 from Simon Pilgrim  ---
Fixed in rL338270

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


[llvm-bugs] [Bug 38418] New: [SLP] "PHI nodes not grouped at top of basic block!" after "SLP Vectorizer" after r338380

2018-08-02 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=38418

Bug ID: 38418
   Summary: [SLP] "PHI nodes not grouped at top of basic block!"
after "SLP Vectorizer" after r338380
   Product: new-bugs
   Version: trunk
  Hardware: PC
OS: Windows NT
Status: NEW
  Severity: enhancement
  Priority: P
 Component: new bugs
  Assignee: unassignedb...@nondot.org
  Reporter: ilia.tara...@intel.com
CC: llvm-bugs@lists.llvm.org

This test crashes after "SLP Vectorizer" after r338380 :

= nice.cpp 
struct b2Vec2
{
b2Vec2 (float x, float y) : x(x), y(y)
{
}
void operator -= (const b2Vec2 & v)
{
x -= v.x;
y -= v.y;
}
float x, y;
};
struct b2Vec3
{
b2Vec3 (int x, int y, int z) : x(0), y(0), z(0)
{
}
float x, y, z;
};
struct b2Mat33
{
b2Vec3 Solve33 (const b2Vec3 & b) const;
b2Vec2 Solve22 (const b2Vec2 & b) const;
};
inline float b2Cross (const b2Vec2 & a, const b2Vec2 & b)
{
return a.x - a.y * b.x;
}
inline b2Vec2 operator * (int s, const b2Vec2 & a)
{
return b2Vec2(s * a.x, s * a.y);
}

struct b2Velocity;
class b2RevoluteJoint
{
void SolveVelocityConstraints (b2Velocity * velocities);
b2Vec3 m_impulse;
bool m_enableLimit;
int m_indexA;
b2Vec2 m_rA;
b2Vec2 m_rB;
int m_invMassA;
int m_invIA;
int m_invIB;
b2Mat33 m_mass;
};
struct b2Velocity
{
b2Vec2 v;
int w;
};

void b2RevoluteJoint:: SolveVelocityConstraints (b2Velocity * velocities)
{
b2Vec2 vA = velocities->v;
int wA = 0;
b2Vec2 vB = velocities->v;
int wB = 0;
int mA = m_invMassA;
float iA = m_invIA, iB = m_invIB;
if (m_enableLimit) 
{
b2Vec2 Cdot1 = vB;
b2Vec3 Cdot (0, 0, 0);
b2Vec3 impulse = m_mass.Solve33(Cdot);
int newImpulse = m_impulse.z;
if (newImpulse) 
{
b2Vec2 rhs = Cdot1;
b2Vec2 reduced = m_mass.Solve22(rhs);
impulse.x = reduced.x;
impulse.z = m_impulse.z;
} else 
{
}
b2Vec2 P (impulse.x, impulse.y);
vA -= mA * P;
wA -= iA * (b2Cross(m_rA, P) + impulse.z);
wB += iB * (b2Cross(m_rB, P));
} else 
{
b2Vec2 Cdot = vB;
b2Vec2 impulse = m_mass.Solve22(Cdot);
vA -= impulse;
wA -= iA * b2Cross(m_rA, impulse);
wB += iB * b2Cross(m_rB, impulse);
}
velocities->v = vA;
velocities[m_indexA].w = wA;
velocities->w = wB;
}

===


>>> clang -v
clang version 8.0.0 (trunk  338677)
Target: x86_64-unknown-linux-gnu
Thread model: posix
...


>>> clang++ -c  -O2 -ffast-math nice.cpp
PHI nodes not grouped at top of basic block!
  %impulse.sroa.6.0 = phi float [ %11, %if.then6 ], [ %call.fca.1.extract,
%if.then ]
label %if.end
fatal error: error in backend: Broken function found, compilation aborted!
clang-8: error: clang frontend command failed with exit code 70 (use -v to see
invocation)
clang version 8.0.0 (trunk 338677)
Target: x86_64-unknown-linux-gnu
Thread model: posix

IR reproducer:
= fine.ll =
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

; Function Attrs: uwtable
define dso_local void @foo() local_unnamed_addr  align 2 {
  br i1 false, label %16, label %1

; :1:  ; preds = %0
  br i1 undef, label %3, label %2

; :2:  ; preds = %1
  br label %3

; :3:  ; preds = %2, %1
  %4 = phi <2 x float> [ undef, %2 ], [ undef, %1 ]
  %5 = phi float [ undef, %2 ], [ undef, %1 ]
  %6 = extractelement <2 x float> %4, i32 0
  %7 = extractelement <2 x float> %4, i32 1
  %8 = fmul fast float %6, undef
  %9 = fmul fast float %7, undef
  %10 = fsub fast float undef, %8
  %11 = fsub fast float undef, %9
  %12 = fmul fast float undef, %6
  %13 = fsub fast float undef, %12
  %14 = fmul fast float undef, %6
  %15 = fsub fast float undef, %14
  br label %17

; :16: ; preds = %0
  br label %17

; :17: ; preds = %16, %3
  %18 = phi float [ undef, %16 ], [ %10, %3 ]
  %19 = phi float [ undef, %16 ], [ %11, %3 ]
  %20 = phi float [ undef, %16 ], [ %15, %3 ]
  %21 = phi float [ undef, %16 ], [ %13, %3 ]
  ret void
}
===

>>> opt fine.ll -verify

>>> opt fine.ll -slp-vectorizer -o fine.opt.ll
PHI nodes not grouped at top of basic block!
  %5 = phi float [ undef, %2 ], [ undef, %1 ]
label %3
LLVM ERROR: Broken function found, compilation aborted!

This test started failing after :

r338380 | abataev | 2018-07-31 16:02:43 +0200 (Tue, 31 Jul 2018) | 13 lines

[SLP] Fix PR38339: Inst

[llvm-bugs] [Bug 38307] Handling of "AT>" linkerscript command looks wrong

2018-08-02 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=38307

George Rimar  changed:

   What|Removed |Added

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

--- Comment #2 from George Rimar  ---
r338697

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


[llvm-bugs] [Bug 38419] New: std::filesystem::path::native() should return an std::wstring on Windows

2018-08-02 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=38419

Bug ID: 38419
   Summary: std::filesystem::path::native() should return an
std::wstring on Windows
   Product: libc++
   Version: 7.0
  Hardware: PC
OS: All
Status: NEW
  Severity: enhancement
  Priority: P
 Component: All Bugs
  Assignee: unassignedclangb...@nondot.org
  Reporter: vanboxem.ru...@gmail.com
CC: llvm-bugs@lists.llvm.org, mclow.li...@gmail.com

As the native path format on Windows is arguably UTF-16 (and MSVC's standard
lib does this as well, as does Boost.Filesystem, not sure about libstdc++),
std::filesystem::path should obey that choice.

Most efficient solution would be to let path use wchar_t throughout, but an
acceptable solution would be to convert to the correct type on a call to
native().

This ensures compatibility between code written with MSVC compiled against
libc++.

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


[llvm-bugs] [Bug 38420] New: Unsequenced modifications of variable within a constexpr function used in constant expression context not considered ill-formed

2018-08-02 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=38420

Bug ID: 38420
   Summary: Unsequenced modifications of variable within a
constexpr function used in constant expression context
not considered ill-formed
   Product: clang
   Version: trunk
  Hardware: PC
OS: All
Status: NEW
  Severity: enhancement
  Priority: P
 Component: C++
  Assignee: unassignedclangb...@nondot.org
  Reporter: yaghmour.sha...@gmail.com
CC: dgre...@apple.com, llvm-bugs@lists.llvm.org

Given 

constexpr int f(int x) {return x++ + x++;}

int main() {
   constexpr int x = 2;
   constexpr int y = f(x); 
}

clang does not consider the declaration of y ill-formed but I believe it
should.

x++ + x++

is undefined behavior since we have unsequenced modifications to x. See
[intro.execution]p10 http://eel.is/c++draft/intro.execution#10 and this should
be ill-formed in a context requiring a constant expression since undefined
behavior is ill-formed in a constant expression see [expr.cons]p2.6
http://eel.is/c++draft/expr.const#2.6

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


[llvm-bugs] [Bug 38421] New: Assertion `Val && "isa<> used on a null pointer"' failed, since SVN r338464, "[P0936R0] add [[clang::lifetimebound]] attribute"

2018-08-02 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=38421

Bug ID: 38421
   Summary: Assertion `Val && "isa<> used on a null pointer"'
failed, since SVN r338464, "[P0936R0] add
[[clang::lifetimebound]] attribute"
   Product: clang
   Version: trunk
  Hardware: PC
OS: All
Status: NEW
  Severity: enhancement
  Priority: P
 Component: -New Bugs
  Assignee: unassignedclangb...@nondot.org
  Reporter: mar...@martin.st
CC: llvm-bugs@lists.llvm.org

When compiling Qt for i686 mingw-w64 with the very latest clang, this triggers
the assertion 'Val && "isa<> used on a null pointer"'.

This happens if clang is built GCC 5.3, but not when it's built in debug mode,
and not when built with clang.

When this happens, I get a backtrace like this:

clang-7: ../include/llvm/Support/Casting.h:106: static bool
llvm::isa_impl_cl::doit(const From*) [with To =
clang::AttributedType; From = clang::Type]: Assertion `Val && "isa<> used on a
null pointer"' failed.
Stack dump:
0.  Program arguments:
/home/martin/code/llvm-bisect/build-with-debug-info/bin/clang-7 -cc1 -triple
i686-w64-windows-gnu -emit-obj -mrelax-all -disable-free -main-file-name
qwindowsmime-638816.cpp -mrelocation-model static -mthread-model posix
-mdisable-fp-elim -fmath-errno -masm-ver
bose -mconstructor-aliases -target-cpu pentium4 -dwarf-column-info
-debugger-tuning=gdb -coverage-notes-file /tmp/foo.gcno -resource-dir
/home/martin/code/llvm-bisect/build-with-debug-info/lib/clang/7.0.0 -D UNICODE
-internal-isystem /usr/i686-w64-mingw32/include/c++ -internal-isystem /u
sr/i686-w64-mingw32/include/c++/i686-w64-mingw32 -internal-isystem
/usr/i686-w64-mingw32/include/c++/backward -internal-isystem
/usr/i686-w64-mingw32/include/c++/5.3-win32 -internal-isystem
/usr/i686-w64-mingw32/include/c++/5.3-win32/i686-w64-mingw32 -internal-isystem
/usr/i686-w64-mingw
32/include/c++/5.3-win32/backward -internal-isystem /usr/include/c++/5.3-win32
-internal-isystem /usr/include/c++/5.3-win32/i686-w64-mingw32 -internal-isystem
/usr/include/c++/5.3-win32/backward -internal-isystem
/usr/lib/gcc/i686-w64-mingw32/5.3-win32/include/c++ -internal-isystem /usr/
lib/gcc/i686-w64-mingw32/5.3-win32/include/c++/i686-w64-mingw32
-internal-isystem /usr/lib/gcc/i686-w64-mingw32/5.3-win32/include/c++/backward
-internal-isystem
/home/martin/code/llvm-bisect/build-with-debug-info/lib/clang/7.0.0/include
-internal-isystem /usr/i686-w64-mingw32/sys-root/mi
ngw/include -internal-isystem /usr/i686-w64-mingw32/include -internal-isystem
/usr/include -fdeprecated-macro -fdebug-compilation-dir /tmp -ferror-limit 19
-fmessage-length 0 -fno-use-cxa-atexit -fobjc-runtime=gcc -fcxx-exceptions
-fexceptions -fdwarf-exceptions -fdiagnostics-show-option
 -o foo.o -x c++ qwindowsmime-638816.cpp 
1.  /home/martin/clang-nightly/i686-w64-mingw32/include/_mingw.h:552:32:
current parser token ';'
#0 0x019ee72a llvm::sys::PrintStackTrace(llvm::raw_ostream&)
/home/martin/code/llvm-bisect/build-with-debug-info/../lib/Support/Unix/Signals.inc:494:0
#1 0x019ecc3c llvm::sys::RunSignalHandlers()
/home/martin/code/llvm-bisect/build-with-debug-info/../lib/Support/Signals.cpp:67:0
#2 0x019ecda7 SignalHandler(int)
/home/martin/code/llvm-bisect/build-with-debug-info/../lib/Support/Unix/Signals.inc:343:0
#3 0x7fd88aa19390 __restore_rt
(/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
#4 0x7fd88978b428 gsignal
/build/glibc-Cl5G7W/glibc-2.23/signal/../sysdeps/unix/sysv/linux/raise.c:54:0
#5 0x7fd88978d02a abort /build/glibc-Cl5G7W/glibc-2.23/stdlib/abort.c:91:0
#6 0x7fd889783bd7 __assert_fail_base
/build/glibc-Cl5G7W/glibc-2.23/assert/assert.c:92:0
#7 0x7fd889783c82 (/lib/x86_64-linux-gnu/libc.so.6+0x2dc82)
#8 0x008d6aea llvm::isa_impl_cl::doit(clang::Type const*)
/home/martin/code/llvm-bisect/build-with-debug-info/../include/llvm/Support/Casting.h:142:0
#9 0x008d6aea llvm::isa_impl_wrap::doit(clang::Type const* const&)
/home/martin/code/llvm-bisect/build-with-debug-info/../include/llvm/Support/Casting.h:133:0
#10 0x008d6aea llvm::isa_impl_wrap::doit(clang::Type const* const&)
/home/martin/code/llvm-bisect/build-with-debug-info/../include/llvm/Support/Casting.h:125:0
#11 0x008d6aea bool llvm::isa(clang::Type const* const&) (.isra.2083.part.2084)
/home/martin/code/llvm-bisect/build-with-debug-info/../include/llvm/Support/Casting.h:144:0
#12 0x02e3b139 bool llvm::isa(clang::Type const* const&)
/home/martin/code/llvm-bisect/build-with-debug-info/../tools/clang/lib/Sema/SemaDecl.cpp:6020:0
#13 0x02e3b139 llvm::cast_retty::ret_type llvm::cast(clang::Type const*)
/home/martin/code/llvm-bisect/build-with-debug-info/../include/llvm/Support/Casting.h:255:0
#14 0x02e3b139 clang::ConcreteTypeLoc::getTypePtr() const
/home/martin/code/llvm-bisect/build-with-debug-info/../tools/clang/include/cl

[llvm-bugs] [Bug 38422] New: Investigate why 3 (disabled) tests hang on AArch64

2018-08-02 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=38422

Bug ID: 38422
   Summary: Investigate why 3 (disabled) tests hang on AArch64
   Product: compiler-rt
   Version: unspecified
  Hardware: PC
OS: Linux
Status: NEW
  Severity: enhancement
  Priority: P
 Component: fuzzer
  Assignee: unassignedb...@nondot.org
  Reporter: peter.sm...@linaro.org
CC: llvm-bugs@lists.llvm.org

This is a follow up from PR38034, where 3 libfuzzer tests were marked
unsupported on AArch64 as they were hanging. Ideally we would like to
understand why the tests are hanging on AArch64 and fix the underlying cause.

The 3 tests marked unsupported are:
countertest.test
fuzzer-oom.test
disable-leaks.test

I've investigated a little further to work out why the -timeout flag doesn't
abort the test. The -timeout flag is per run of the user callback and not the
overall test. As each run of the user callback is very fast (< 100ms) then we
are extremely unlikely to hit the 15s timeout. I've checked that
-max_total_time works. 

I've also been able to make the test pass at -O0 and -O1. This makes me
suspicious of the conditional instructions like cinc that are present in the
-O2 compilation of LLVMFuzzerTestOneInput. It is possible that the code
coverage isn't increasing when different paths of the cinc (increment) are
being taken and this is causing no new coverage information from being
generated.

Information copied from PR38034
When I run countertest.test on my Ubuntu 16.04 X86 box I very quickly get:
INFO: Seed: 1
INFO: Loaded 1 modules   (53 inline 8-bit counters): 53 [0x7e6f00, 0x7e6f35), 
INFO: Loaded 1 PC tables (53 PCs): 53 [0x5aaed0,0x5ab220), 
INFO: A corpus is not provided, starting from an empty corpus
#2  INITED cov: 4 ft: 5 corp: 1/1b lim: 4 exec/s: 0 rss: 26Mb
#10 NEWcov: 8 ft: 9 corp: 2/3b lim: 4 exec/s: 0 rss: 27Mb L: 2/2 MS: 3
CopyPart-ChangeBit-InsertByte-
#15 NEWcov: 9 ft: 12 corp: 3/7b lim: 4 exec/s: 0 rss: 27Mb L: 4/4 MS: 5
CopyPart-ShuffleBytes-ShuffleBytes-InsertByte-CrossOver-
#1029   NEWcov: 10 ft: 13 corp: 4/11b lim: 4 exec/s: 0 rss: 27Mb L: 4/4 MS:
4 ChangeBinInt-CopyPart-ChangeByte-CrossOver-
#1047   REDUCE cov: 10 ft: 13 corp: 4/10b lim: 4 exec/s: 0 rss: 27Mb L: 3/4 MS:
3 CopyPart-CopyPart-EraseBytes-
#1088   REDUCE cov: 10 ft: 13 corp: 4/9b lim: 4 exec/s: 0 rss: 27Mb L: 2/4 MS:
1 EraseBytes-
#1125   REDUCE cov: 11 ft: 14 corp: 5/10b lim: 4 exec/s: 0 rss: 27Mb L: 1/4 MS:
2 ShuffleBytes-EraseBytes-
#1338   REDUCE cov: 11 ft: 15 corp: 6/14b lim: 4 exec/s: 0 rss: 27Mb L: 4/4 MS:
3 InsertByte-CopyPart-ChangeBinInt-
#1764   REDUCE cov: 12 ft: 16 corp: 7/16b lim: 4 exec/s: 0 rss: 27Mb L: 2/4 MS:
1 ChangeByte-
#3772   NEWcov: 12 ft: 19 corp: 8/22b lim: 6 exec/s: 0 rss: 27Mb L: 6/6 MS:
3 CMP-InsertByte-InsertByte- DE: "seed"-
#18577  NEWcov: 12 ft: 20 corp: 9/28b lim: 6 exec/s: 0 rss: 28Mb L: 6/6 MS:
5 CrossOver-ShuffleBytes-ChangeBit-ChangeByte-ChangeBit-
BINGO!

When I run on aarch64 I get:
INFO: Seed: 1
INFO: Loaded 1 modules   (12 inline 8-bit counters): 12 [0x609080, 0x60908c), 
INFO: Loaded 1 PC tables (12 PCs): 12 [0x5c6b40,0x5c6c00), 
INFO: A corpus is not provided, starting from an empty corpus
#2  INITED cov: 4 ft: 6 corp: 1/1b lim: 4 exec/s: 0 rss: 30Mb
#10 NEWcov: 4 ft: 7 corp: 2/3b lim: 4 exec/s: 0 rss: 30Mb L: 2/2 MS: 3
CopyPart-ChangeBit-InsertByte-
#14 NEWcov: 5 ft: 8 corp: 3/6b lim: 4 exec/s: 0 rss: 30Mb L: 3/3 MS: 4
CopyPart-ShuffleBytes-ShuffleBytes-InsertByte-
#17 NEWcov: 5 ft: 9 corp: 4/10b lim: 4 exec/s: 0 rss: 31Mb L: 4/4 MS: 3
InsertByte-EraseBytes-CrossOver-
#2029   NEWcov: 5 ft: 10 corp: 5/16b lim: 6 exec/s: 0 rss: 31Mb L: 6/6 MS:
2 CopyPart-CrossOver-
#6660   NEWcov: 6 ft: 11 corp: 6/17b lim: 6 exec/s: 0 rss: 31Mb L: 1/6 MS:
1 ChangeByte-
#1048576pulse  cov: 6 ft: 11 corp: 6/17b lim: 6 exec/s: 349525 rss:
78Mb
#2097152pulse  cov: 6 ft: 11 corp: 6/17b lim: 6 exec/s: 349525 rss:
125Mb
#4194304pulse  cov: 6 ft: 11 corp: 6/17b lim: 6 exec/s: 349525 rss:
219Mb
#8388608pulse  cov: 6 ft: 11 corp: 6/17b lim: 6 exec/s: 335544 rss:
408Mb
#16777216   pulse  cov: 6 ft: 11 corp: 6/17b lim: 6 exec/s: 328965 rss:
785Mb
...
The pulses continue but at a much slower rate.

When I print out the printable characters in the output they don't seem to be
varying much from:
"

((h(
(((h(
(((h(
(((h(
0
U0
U0
U0(
U10(

(((
T((
T(%(
"

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


[llvm-bugs] [Bug 38423] New: [X86][SSE] Add ISD::MULHS/MULHU vXi64 support

2018-08-02 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=38423

Bug ID: 38423
   Summary: [X86][SSE] Add ISD::MULHS/MULHU vXi64 support
   Product: libraries
   Version: trunk
  Hardware: PC
OS: Windows NT
Status: NEW
  Severity: enhancement
  Priority: P
 Component: Backend: X86
  Assignee: unassignedb...@nondot.org
  Reporter: llvm-...@redking.me.uk
CC: andrea.dibia...@gmail.com, craig.top...@gmail.com,
lebedev...@gmail.com, llvm-bugs@lists.llvm.org,
spatel+l...@rotateright.com

I haven't thoroughly tested this but MULHU should be something like:

define <2 x i64> @mulh_2u64(<2 x i64>, <2 x i64>) {
  %3 = and <2 x i64> %0, 
  %4 = lshr <2 x i64> %0, 
  %5 = and <2 x i64> %1, 
  %6 = lshr <2 x i64> %1, 
  %7 = mul nuw <2 x i64> %6, %4
  %8 = mul nuw <2 x i64> %5, %4
  %9 = mul nuw <2 x i64> %6, %3
  %10 = mul nuw <2 x i64> %5, %3
  %11 = and <2 x i64> %8, 
  %12 = and <2 x i64> %9, 
  %13 = add nuw nsw <2 x i64> %11, %12
  %14 = lshr <2 x i64> %10, 
  %15 = add nuw nsw <2 x i64> %13, %14
  %16 = lshr <2 x i64> %15, 
  %17 = lshr <2 x i64> %8, 
  %18 = add <2 x i64> %17, %7
  %19 = lshr <2 x i64> %9, 
  %20 = add <2 x i64> %18, %19
  %21 = add <2 x i64> %20, %16
  ret <2 x i64> %21
}

mulh_2u64:
  vpxor %xmm2, %xmm2, %xmm2
  vpblendw $204, %xmm2, %xmm0, %xmm3 # xmm3 =
xmm0[0,1],xmm2[2,3],xmm0[4,5],xmm2[6,7]
  vpblendw $204, %xmm2, %xmm1, %xmm4 # xmm4 =
xmm1[0,1],xmm2[2,3],xmm1[4,5],xmm2[6,7]
  vpsrlq $32, %xmm0, %xmm0
  vpsrlq $32, %xmm1, %xmm1
  vpmuludq %xmm0, %xmm1, %xmm5
  vpmuludq %xmm3, %xmm1, %xmm1
  vpmuludq %xmm0, %xmm4, %xmm0
  vpmuludq %xmm3, %xmm4, %xmm3
  vpblendw $204, %xmm2, %xmm0, %xmm4 # xmm4 =
xmm0[0,1],xmm2[2,3],xmm0[4,5],xmm2[6,7]
  vpblendw $204, %xmm2, %xmm1, %xmm2 # xmm2 =
xmm1[0,1],xmm2[2,3],xmm1[4,5],xmm2[6,7]
  vpsrlq $32, %xmm0, %xmm0
  vpsrlq $32, %xmm3, %xmm3
  vpsrlq $32, %xmm1, %xmm1
  vpaddq %xmm2, %xmm4, %xmm2
  vpaddq %xmm5, %xmm0, %xmm0
  vpaddq %xmm3, %xmm2, %xmm2
  vpaddq %xmm1, %xmm0, %xmm0
  vpsrlq $32, %xmm2, %xmm2
  vpaddq %xmm2, %xmm0, %xmm0
  retq

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


[llvm-bugs] [Bug 37776] Invalid optimization with `fmax` and `-inf`

2018-08-02 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=37776

Sanjay Patel  changed:

   What|Removed |Added

 Fixed By Commit(s)||338716
 Resolution|--- |FIXED
 Status|NEW |RESOLVED

--- Comment #7 from Sanjay Patel  ---
https://reviews.llvm.org/rL338716

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


[llvm-bugs] [Bug 38424] New: Vectorizing math calls containing pointers

2018-08-02 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=38424

Bug ID: 38424
   Summary: Vectorizing math calls containing pointers
   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: a.bat...@hotmail.com, hfin...@anl.gov,
hideki.sa...@intel.com, llvm-bugs@lists.llvm.org,
rob.lougher.l...@gmail.com

While veclib can handle vectorizing basic math functions, it seems we likely to
struggle with more complex functions that uses a pointer to return some
results:

e.g.
float modff(float arg, float* iptr);
void sincosf(float x, float *s, float *c);

AFAICT if we try to implement these the vectorizers will convert these into:

<4 x float> modff4(<4 x float> arg, <4 x float*> iptr);
void sincosf4(<4 x float> x, <4 x float*> s, <4 x float*> c);

instead of the more useful:

<4 x float> modff4(<4 x float> arg, <4 x float> *iptr);
void sincosf4(<4 x float> x, <4 x float> *s, <4 x float> *c);

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


[llvm-bugs] [Bug 38425] New: Backport r338599 to 7.0

2018-08-02 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=38425

Bug ID: 38425
   Summary: Backport r338599 to 7.0
   Product: libraries
   Version: trunk
  Hardware: PC
OS: All
Status: NEW
  Severity: enhancement
  Priority: P
 Component: Backend: X86
  Assignee: unassignedb...@nondot.org
  Reporter: v...@tsyrklevich.net
CC: llvm-bugs@lists.llvm.org
Blocks: 38406

r338599 is a fix for https://bugs.llvm.org/show_bug.cgi?id=38200 (X86FastISel
did not handle !absolute_symbol GVs correctly.)


Referenced Bugs:

https://bugs.llvm.org/show_bug.cgi?id=38406
[Bug 38406] [meta] 7.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
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 38426] New: [OpenCL C++] Lambda/Functions broken in templates

2018-08-02 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=38426

Bug ID: 38426
   Summary: [OpenCL C++] Lambda/Functions broken in templates
   Product: clang
   Version: trunk
  Hardware: PC
OS: Windows NT
Status: NEW
  Severity: enhancement
  Priority: P
 Component: OpenCL
  Assignee: unassignedclangb...@nondot.org
  Reporter: erich.ke...@intel.com
CC: llvm-bugs@lists.llvm.org

as you can see here: 

https://godbolt.org/g/PnxFQJ

It appears that some of the OpenCL C++ implementation messes with the
qualifiers of function types, so this breaks.  I believe the lambda issue has
to do with address-space modification, but I'm not sure yet.

void func();

template
void foo(Func F) {
F();
}

int main() {
foo(func);
foo([](){});
}

:8:5: error: function cannot be called 'main'

int main() {

^

:9:9: error: taking address of function is not allowed

foo(func);

^

:5:5: error: no matching function for call to object of type '(lambda
at :10:9)'

F();

^

:10:5: note: in instantiation of function template specialization
'foo<(lambda at :10:9)>' requested here

foo([](){});

^

:10:9: note: candidate function not viable: address space mismatch in
'this' argument ('(lambda at :10:9)'), parameter type must be 'const
(lambda at :10:9)'

foo([](){});

^

:10:9: note: conversion candidate of type 'void (*)()'

3 errors generated.

Compiler returned: 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
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 37978] Add LLDB repository to Diffusion

2018-08-02 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=37978

Jonas Devlieghere  changed:

   What|Removed |Added

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

--- Comment #1 from Jonas Devlieghere  ---
The LLDB repository was added.

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


[llvm-bugs] [Bug 38421] Assertion `Val && "isa<> used on a null pointer"' failed, since SVN r338464, "[P0936R0] add [[clang::lifetimebound]] attribute"

2018-08-02 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=38421

Richard Smith  changed:

   What|Removed |Added

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

--- Comment #2 from Richard Smith  ---
This was caused by a GCC bug. We've already changed clang to work around the
bug.

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


[llvm-bugs] [Bug 38427] New: Crash under isLeftShiftResultUnrepresentable

2018-08-02 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=38427

Bug ID: 38427
   Summary: Crash under isLeftShiftResultUnrepresentable
   Product: clang
   Version: unspecified
  Hardware: PC
OS: Linux
Status: NEW
  Severity: enhancement
  Priority: P
 Component: Static Analyzer
  Assignee: dcough...@apple.com
  Reporter: ale...@google.com
CC: llvm-bugs@lists.llvm.org

$ cat test.c
int a;
void b() {
  char c = d() - 5;
  c == 0;
  a -= c;
  a == 3;
  (long)a << 48;
}
$ ./clang-tidy -checks=-*,clang-analyzer* test.c -- -std=c99
PC: @ 0x55e508f35909  (unknown)  llvm::APInt::isSingleWord()
@ 0x55e51723bca8192  FailureSignalHandler()
@ 0x7f36b6d2e9a0  (unknown)  (unknown)
@ 0x55e508f393df 32  llvm::APInt::countLeadingZeros()
@ 0x55e51108d060192  isLeftShiftResultUnrepresentable()
@ 0x55e51108c29b224  (anonymous
namespace)::UndefResultChecker::checkPostStmt()
@ 0x55e511676c62192  (anonymous
namespace)::CheckStmtContext::runChecker()
@ 0x55e51166ee44240  expandGraphWithCheckers<>()
@ 0x55e51166e62f208 
clang::ento::CheckerManager::runCheckersForStmt()
@ 0x55e5116c61b5 32 
clang::ento::CheckerManager::runCheckersForPostStmt()
@ 0x55e5116fef3e608 
clang::ento::ExprEngine::VisitBinaryOperator()
@ 0x55e5116b5495384  clang::ento::ExprEngine::Visit()
@ 0x55e5116af75a192  clang::ento::ExprEngine::ProcessStmt()
@ 0x55e5116af2d9160 
clang::ento::ExprEngine::processCFGElement()
@ 0x55e5116f811a160  clang::ento::CoreEngine::HandlePostStmt()
@ 0x55e5116f7284160 
clang::ento::CoreEngine::dispatchWorkItem()
@ 0x55e5116f6c6d256  clang::ento::CoreEngine::ExecuteWorkList()
@ 0x55e511015328160  clang::ento::ExprEngine::ExecuteWorkList()
@ 0x55e510fdca9b192  (anonymous
namespace)::AnalysisConsumer::ActionExprEngine()
@ 0x55e510fdc3a6192  (anonymous
namespace)::AnalysisConsumer::HandleCode()
@ 0x55e510fd6815288  (anonymous
namespace)::AnalysisConsumer::HandleDeclsCallGraph()
@ 0x55e510fd5807208  (anonymous
namespace)::AnalysisConsumer::runAnalysisOnTranslationUnit()
@ 0x55e510fd4696 48  (anonymous
namespace)::AnalysisConsumer::HandleTranslationUnit()
@ 0x55e511d258d8128 
clang::MultiplexConsumer::HandleTranslationUnit()

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


[llvm-bugs] [Bug 38428] New: xor i1 (xor i1 %x, %y), true -> icmp eq i1 %x, %y

2018-08-02 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=38428

Bug ID: 38428
   Summary: xor i1 (xor i1 %x, %y), true  ->  icmp eq i1 %x, %y
   Product: libraries
   Version: trunk
  Hardware: PC
OS: Linux
Status: NEW
  Severity: enhancement
  Priority: P
 Component: Scalar Optimizations
  Assignee: unassignedb...@nondot.org
  Reporter: lebedev...@gmail.com
CC: llvm-bugs@lists.llvm.org

%t = xor i1 %x, %y
%r = xor i1 %t, true
  =>
%r = icmp eq i1 %x, %y 

https://godbolt.org/g/52qJrW
https://rise4fun.com/Alive/LNo

Not sure, is this for instcombine?

Stumbled into while trying to come with the sign-change test for sanitizer.

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


[llvm-bugs] [Bug 38429] New: Make sure lld-link's /Brepro sets the right "this is not a real timestamp" flags

2018-08-02 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=38429

Bug ID: 38429
   Summary: Make sure lld-link's /Brepro sets the right "this is
not a real timestamp" flags
   Product: lld
   Version: unspecified
  Hardware: PC
OS: Linux
Status: NEW
  Severity: enhancement
  Priority: P
 Component: COFF
  Assignee: unassignedb...@nondot.org
  Reporter: nicolaswe...@gmx.de
CC: llvm-bugs@lists.llvm.org

I happened to see this today: https://github.com/dotnet/roslyn/issues/5940

It explains what to do if the pe timestamp field is a hash and not a real
timestamp. We should make sure that lld does all 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
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 38430] New: Preprocessing is much slower than GCC on small files

2018-08-02 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=38430

Bug ID: 38430
   Summary: Preprocessing is much slower than GCC on small files
   Product: clang
   Version: 6.0
  Hardware: Other
OS: Linux
Status: NEW
  Severity: enhancement
  Priority: P
 Component: Frontend
  Assignee: unassignedclangb...@nondot.org
  Reporter: husseyde...@gmail.com
CC: llvm-bugs@lists.llvm.org

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

Clang 6.0.1, installed from Termux repos.
GCC 8.2.0, installed from its-pointless.github.io
Termux, LG G3
System information:
Linux localhost 3.4.113-LineageXTD-R7 #1 SMP PREEMPT Fri Jun 15 20:42:06 CEST
2018 armv7l Android
Termux-packages arch:
arm
Android version:
8.1.0, LineageOS
Device manufacturer:
LGE
Device model:
LG-D851

Note that I have gotten similar results on Ubuntu WSL, but I need to do further
testing.

While preprocessing very large files has a similar result with clang sometimes
being faster, clang has terrible performance when invoked many times in a row
with small files:

For example, cd to your main include directory, and run these shell commands:

mkdir -p ~/cpptest
I=0
for file in *.h; do
echo "#include <$file>" > ~/cpptest/$I.h
I=$((I+1));
done

Now, put the attached Makefile in ~/cpptest and time make, first with
CPP="clang-6.0 -E", make clean, and next with CPP="gcc-8 -E". Remove any lines
or files that error and run again.

$ time make CPP="clang-6.0 -E"

real1m14.787s
user0m46.860s
sys 0m22.390s
$ make clean
$ time make CPP="gcc-8 -E"

real0.19.910s
user0m11.390s
sys 0m5.880s
$

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


[llvm-bugs] [Bug 38431] New: "too many template arguments for class template" disallows sensible empty-parameter-pack instantiation

2018-08-02 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=38431

Bug ID: 38431
   Summary: "too many template arguments for class template"
disallows sensible empty-parameter-pack instantiation
   Product: clang
   Version: trunk
  Hardware: PC
OS: Linux
Status: NEW
  Severity: enhancement
  Priority: P
 Component: C++
  Assignee: unassignedclangb...@nondot.org
  Reporter: tonyele...@hotmail.com
CC: dgre...@apple.com, llvm-bugs@lists.llvm.org

If I compile this:


template  struct X {};
template  void   f ( X) {}
template  struct A { X x; };

int main() {
f<>  ( X{} );
A<> a{ X{} };
}


...(with no additional command line flags) I get:


a.cpp:2:38: error: too many template arguments for class template 'X'
template  void   f ( X) {}
 ^  ~~
a.cpp:1:28: note: template is declared here
template  struct X {};
~~~^
a.cpp:3:38: error: too many template arguments for class template 'X'
template  struct A { X x; };
 ^  ~~
a.cpp:1:28: note: template is declared here
template  struct X {};
~~~^
a.cpp:6:5: error: no matching function for call to 'f'
f<>  ( X{} );
^~~
3 errors generated.


...but I'm guessing (and GCC 8.2 and GCC trunk apparently agree) that this code
is valid because f() and A can be reasonably instantiated with an empty
parameter pack, as illustrated in main(). I think the error should only come at
the point of any instantiation that actually instantiates X with too many
template arguments.

Godbolt indicates that this happens on 6.0.0 and trunk (338661).

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


[llvm-bugs] [Bug 38432] New: Merge r338569 into the 7.0 branch : AMDGPU: Allow fp32-denormals feature for r600 targets

2018-08-02 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=38432

Bug ID: 38432
   Summary: Merge r338569 into the 7.0 branch : AMDGPU: Allow
fp32-denormals feature for r600 targets
   Product: new-bugs
   Version: 7.0
  Hardware: All
OS: All
Status: NEW
  Severity: enhancement
  Priority: P
 Component: new bugs
  Assignee: unassignedb...@nondot.org
  Reporter: jan.ves...@rutgers.edu
CC: llvm-bugs@lists.llvm.org
Blocks: 38406

Is it OK to merge the following revision(s) to the 7.0 branch?


Referenced Bugs:

https://bugs.llvm.org/show_bug.cgi?id=38406
[Bug 38406] [meta] 7.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
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 38433] New: Merge r338610 into the 7.0 branch : AMDGPU/R600: Convert kernel param loads to use PARAM_I_ADDRESS

2018-08-02 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=38433

Bug ID: 38433
   Summary: Merge r338610 into the 7.0 branch : AMDGPU/R600:
Convert kernel param loads to use PARAM_I_ADDRESS
   Product: new-bugs
   Version: 7.0
  Hardware: All
OS: All
Status: NEW
  Severity: enhancement
  Priority: P
 Component: new bugs
  Assignee: unassignedb...@nondot.org
  Reporter: jan.ves...@rutgers.edu
CC: llvm-bugs@lists.llvm.org
Blocks: 38406

Is it OK to merge the following revision(s) to the 7.0 branch?


Referenced Bugs:

https://bugs.llvm.org/show_bug.cgi?id=38406
[Bug 38406] [meta] 7.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
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 31399] [CodeGen] suboptimal code for ffs()

2018-08-02 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=31399

Craig Topper  changed:

   What|Removed |Added

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

--- Comment #4 from Craig Topper  ---
The other case has been fixed in r338613

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


[llvm-bugs] [Bug 38434] New: [polly] miscompile due to missing overflow check for isl expressions

2018-08-02 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=38434

Bug ID: 38434
   Summary: [polly] miscompile due to missing overflow check for
isl expressions
   Product: Polly
   Version: unspecified
  Hardware: PC
OS: Windows NT
Status: NEW
  Severity: enhancement
  Priority: P
 Component: Optimizer
  Assignee: polly-...@googlegroups.com
  Reporter: efrie...@codeaurora.org
CC: llvm-bugs@lists.llvm.org

Consider the following loop:

void a(int* restrict x,int * restrict x2, long long g, long long g2, int n) {
  for (int i = 0; i < n; ++i) {
x[i]++;
if (g < 0x4000 - g2/8) x2[i]++;
  }
}

polly currently miscompiles this loop.  It has no runtime check because polly
correctly computes that "g < 0x4000 - g2/8" can't overflow. 
However, isl "simplifies" the condition to "if ((p_0 <= -1 && p_0 + 8 * p_1 <=
36893488147419103224) || (p_0 >= 0 && p_0 + 8 * p_1 <= 36893488147419103231))",
and polly blindly assumes the math will not overflow an i64.

This is a synthetic testcase. (I ran into something sort of similar which
inspired this, but it overflowed in the runtime check instead of miscompiling.)

IR version follows; reproduce with "opt -polly-codegen
-polly-process-unprofitable".

define void @a(i32* noalias nocapture %x, i32* noalias nocapture %x2, i64 %g,
i64 %g2, i32 %n) {
entry:
  %cmp10 = icmp sgt i32 %n, 0
  br i1 %cmp10, label %for.body.lr.ph, label %for.cond.cleanup

for.body.lr.ph:
  %div = sdiv i64 %g2, 8
  %sub = sub nsw i64 4611686018427387904, %div
  %cmp1 = icmp sgt i64 %sub, %g
  %wide.trip.count = zext i32 %n to i64
  br label %for.body

for.cond.cleanup:
  ret void

for.body:
  %indvars.iv = phi i64 [ 0, %for.body.lr.ph ], [ %indvars.iv.next, %for.inc ]
  %arrayidx = getelementptr inbounds i32, i32* %x, i64 %indvars.iv
  %0 = load i32, i32* %arrayidx, align 4
  %inc = add nsw i32 %0, 1
  store i32 %inc, i32* %arrayidx, align 4
  br i1 %cmp1, label %if.then, label %for.inc

if.then:
  %arrayidx3 = getelementptr inbounds i32, i32* %x2, i64 %indvars.iv
  %1 = load i32, i32* %arrayidx3, align 4
  %inc4 = add nsw i32 %1, 1
  store i32 %inc4, i32* %arrayidx3, align 4
  br label %for.inc

for.inc:
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond, label %for.cond.cleanup, label %for.body
}

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


[llvm-bugs] [Bug 38431] "too many template arguments for class template" disallows sensible empty-parameter-pack instantiation

2018-08-02 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=38431

Richard Smith  changed:

   What|Removed |Added

 CC||richard-l...@metafoo.co.uk
 Status|NEW |RESOLVED
 Resolution|--- |INVALID

--- Comment #1 from Richard Smith  ---
(In reply to tonyelewis from comment #0)
> I'm guessing that this
> code is valid because f() and A can be reasonably instantiated with an empty
> parameter pack

Your guess turns out to be incorrect. See http://eel.is/c++draft/temp#res-8.3:

"The program is ill-formed, no diagnostic required, if [...] every valid
specialization of a variadic template requires an empty template parameter
pack"

So Clang is correct to diagnose this. (And the other compilers are correct to
accept it if they so choose.)

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


[llvm-bugs] [Bug 38435] New: [ARM]

2018-08-02 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=38435

Bug ID: 38435
   Summary: [ARM]
   Product: lld
   Version: unspecified
  Hardware: PC
OS: Linux
Status: NEW
  Severity: normal
  Priority: P
 Component: ELF
  Assignee: unassignedb...@nondot.org
  Reporter: japarici...@gmail.com
CC: llvm-bugs@lists.llvm.org

Created attachment 20635
  --> https://bugs.llvm.org/attachment.cgi?id=20635&action=edit
Output of --reproduce

These are the input object files. Observe the instruction at : `bl
<__nop>`.

$ arm-none-eabi-objdump -Cd app.o | head -n11

app.o: file format elf32-littlearm


Disassembly of section .text.main:

 :
  0:   be00bkpt0x
  2:   f7ff fffe   bl  0 <__nop>
  6:   be00bkpt0x
  8:   e7fdb.n 6 

$ arm-none-eabi-objdump -Cd libasm.a
In archive libasm.a:

asm.o: file format elf32-littlearm


Disassembly of section .text:

 <__nop>:
  0:   4770bx  lr

When linking with LLD,  becomes `blx 850`. This instruction
causes a HardFault (SIGILL like) exception when executed. (AIUI the argument of
BLX should be a register, not an address)

$ lld -flavor gnu app.o -o app --gc-sections -L . -Bstatic --whole-archive
-lasm --no-whole-archive -Tlink.x -Bdynamic --reproduce repro.tar

$ arm-none-eabi-objdump -Cd app | head -n11

app: file format elf32-littlearm


Disassembly of section .text:

0840 :
840:   be00bkpt0x
842:   f000 e806   blx 850 
846:   be00bkpt0x
848:   e7fdb.n 846 

When linking with GNU LD,  becomes `bl 852`. This program
executes without raising an exception.

$ arm-none-eabi-ld app.o -o app --gc-sections -L . -Bstatic --whole-archive
-lasm --no-whole-archive -Tlink.x -Bdynamic

$ arm-none-eabi-objdump -Cd app | head -n11

app: file format elf32-littlearm


Disassembly of section .text:

0840 :
840:   be00bkpt0x
842:   f000 f806   bl  852 <__nop>
846:   be00bkpt0x
848:   e7fdb.n 846 

Version information:

LLVM:
https://github.com/llvm-mirror/llvm/commit/0b5d0cfa8e55ac076285efb25e102597751db49c
LLD:
https://github.com/llvm-mirror/lld/commit/bcfc39dfc8e40fd7744828abfb4ae4f9e69dc32b
GNU LD: 2.31

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