[llvm-bugs] [Bug 27931] New: PPC64 Target initDwarfEHRegSizeTable has wrong register size and there is no register 114, 115, 116

2016-05-30 Thread via llvm-bugs
https://llvm.org/bugs/show_bug.cgi?id=27931

Bug ID: 27931
   Summary: PPC64 Target initDwarfEHRegSizeTable has wrong
register size and there is no register 114, 115, 116
   Product: clang
   Version: trunk
  Hardware: Other
OS: Linux
Status: NEW
  Severity: normal
  Priority: P
 Component: LLVM Codegen
  Assignee: unassignedclangb...@nondot.org
  Reporter: bluechristl...@163.com
CC: llvm-bugs@lists.llvm.org
Classification: Unclassified

In the PPC64TargetCodeGenInfo, we have one function initDwarfEHRegSizeTable to
support built in function __builtin_init_dwarf_reg_size_table. However,
according to ABI ducumentation:
http://openpowerfoundation.org/?resource_lib=power-architecture-64-bit-elf-v2-abi-specification-also-openpower-abi-for-linux-supplement
page 91 Table 2-23 and GCC supplement output (see blow example), we can find
that register 64 to register 67 width is 8 bytes, but our implementatio is 4
bytes. code is here:

  // 64-76 are various 4-byte special-purpose registers:
  // 64: mq
  // 65: lr
  // 66: ctr
  // 67: ap
  // 68-75 cr0-7
  // 76: xer
  AssignToArrayRange(Builder, Address, Four8, 64, 76);

Meanwhile, according to this table and GCC supplement output, we can find we
omit register tfhar, register tfiar, register texasr, which are numbered as
114, 115 and 116. But now, we only have 113.

  // 109: vrsave
  // 110: vscr
  // 111: spe_acc
  // 112: spefscr
  // 113: sfp
  AssignToArrayRange(Builder, Address, Four8, 109, 113);

So, we should add it.

One test code of GCC output supplement:
[code]

int arr[1024];
int main() {
  __builtin_init_dwarf_reg_size_table(arr);
  return 0;
}

[/code]

gcc t.c -S

the assembly file is:
...
.LC0:
.quad   arr
.LC1:
.quad   arr+1
.LC2:
.quad   arr+2
.LC3:
.quad   arr+3
.LC4:
.quad   arr+4
.LC5:
.quad   arr+5
.LC6:
.quad   arr+6
..

addis 10,2,.LC64@toc@ha
ld 9,.LC64@toc@l(10)
li 10,8
stb 10,0(9)

addis 10,2,.LC65@toc@ha
ld 9,.LC65@toc@l(10)
li 10,8
stb 10,0(9)

addis 10,2,.LC66@toc@ha
ld 9,.LC66@toc@l(10)
li 10,8
stb 10,0(9)
addis 10,2,.LC67@toc@ha
ld 9,.LC67@toc@l(10)
li 10,8
stb 10,0(9)

addis 10,2,.LC68@toc@ha
ld 9,.LC68@toc@l(10)
li 10,4
stb 10,0(9)

...

addis 10,2,.LC113@toc@ha
ld 9,.LC113@toc@l(10)
li 10,8
stb 10,0(9)

addis 10,2,.LC114@toc@ha
ld 9,.LC114@toc@l(10)
li 10,8
stb 10,0(9)

addis 10,2,.LC115@toc@ha
ld 9,.LC115@toc@l(10)
li 10,8
stb 10,0(9)

addis 10,2,.LC116@toc@ha
ld 9,.LC116@toc@l(10)
li 10,8
stb 10,0(9)



-- 
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 27932] New: build mesa error in backend: symbol 'x86_64_entry_start'

2016-05-30 Thread via llvm-bugs
https://llvm.org/bugs/show_bug.cgi?id=27932

Bug ID: 27932
   Summary: build mesa error in backend: symbol
'x86_64_entry_start'
   Product: new-bugs
   Version: 3.8
  Hardware: PC
OS: Linux
Status: NEW
  Severity: normal
  Priority: P
 Component: new bugs
  Assignee: unassignedb...@nondot.org
  Reporter: hepha.l...@gmail.com
CC: llvm-bugs@lists.llvm.org
Classification: Unclassified

hello
build mesa 11.3.0-devel show this error
How to deal with thank you

OS : ARCH


entry-909113.c
http://paste.ubuntu.com/16831086/

entry-909113.sh
http://paste.ubuntu.com/16831122/



fatal error: error in backend: symbol 'x86_64_entry_start' is already defined
clang-3.9: error: clang frontend command failed with exit code 70 (use -v to
see invocation)
clang version 3.9.0 (trunk)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
clang-3.9: note: diagnostic msg: PLEASE submit a bug report to
http://llvm.org/bugs/ and include the crash backtrace, preprocessed source, and
associated run script.
clang-3.9: note: diagnostic msg: 


PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang-3.9: note: diagnostic msg: /tmp/entry-909113.c
clang-3.9: note: diagnostic msg: /tmp/entry-909113.sh
clang-3.9: note: diagnostic msg: 


Makefile:1450: recipe for target 'shared_glapi_libglapi_la-entry.lo' failed
make[4]: *** [shared_glapi_libglapi_la-entry.lo] Error 1
make[4]: *** Waiting for unfinished jobs
make[4]: Leaving directory '/mnt/warehouse/aur/mesa-git/src/mesa/src/mapi'
Makefile:1644: recipe for target 'all-recursive' failed
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory '/mnt/warehouse/aur/mesa-git/src/mesa/src/mapi'
Makefile:1109: recipe for target 'all' failed
make[2]: *** [all] Error 2
make[2]: Leaving directory '/mnt/warehouse/aur/mesa-git/src/mesa/src/mapi'
Makefile:696: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/mnt/warehouse/aur/mesa-git/src/mesa/src'
Makefile:643: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 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 27933] New: engine not emit location check callback where it should

2016-05-30 Thread via llvm-bugs
https://llvm.org/bugs/show_bug.cgi?id=27933

Bug ID: 27933
   Summary: engine not emit location check callback where it
should
   Product: clang
   Version: unspecified
  Hardware: PC
OS: Windows NT
Status: NEW
  Severity: normal
  Priority: P
 Component: Static Analyzer
  Assignee: kreme...@apple.com
  Reporter: hume...@gmail.com
CC: llvm-bugs@lists.llvm.org
Classification: Unclassified

I'm writing a plugin that do location check as in ArrayBoundCheck plugin, but
in some cases the callback is not called:

checkLocation(SVal location, bool isLoad, const Stmt* LoadS, CheckerContext
&checkerContext) const

for the folling test, it's ok
void test(int a, int b) {
  if (a > 10 && b > 10)
  {
  char x[10];
  int z = a+1+b;
  x[z] = 5; // expected-warning{{out-of-bound}}
  }
}

but for the second test no callback is emitted, I think this is obviously a
bug:

void test(int a, int b) {
  if (a > 10 && b > 10)
  {
  char x[10];
  x[a+1+b] = 5; // expected-warning{{out-of-bound}}
  }
}

-- 
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 27759] [Meta] Remove exit-on-error flag

2016-05-30 Thread via llvm-bugs
https://llvm.org/bugs/show_bug.cgi?id=27759

Bug 27759 depends on bug 27768, which changed state.

Bug 27768 Summary: Remove exit-on-error from test/CodeGen/BPF/struct_ret1.ll
https://llvm.org/bugs/show_bug.cgi?id=27768

   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 27768] Remove exit-on-error from test/CodeGen/BPF/struct_ret1.ll

2016-05-30 Thread via llvm-bugs
https://llvm.org/bugs/show_bug.cgi?id=27768

Diana Picus  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #3 from Diana Picus  ---
r271200

-- 
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 27769] Remove exit-on-error from test/CodeGen/BPF/struct_ret2.ll

2016-05-30 Thread via llvm-bugs
https://llvm.org/bugs/show_bug.cgi?id=27769

Diana Picus  changed:

   What|Removed |Added

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

--- Comment #3 from Diana Picus  ---
r271200

-- 
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 27759] [Meta] Remove exit-on-error flag

2016-05-30 Thread via llvm-bugs
https://llvm.org/bugs/show_bug.cgi?id=27759

Bug 27759 depends on bug 27769, which changed state.

Bug 27769 Summary: Remove exit-on-error from test/CodeGen/BPF/struct_ret2.ll
https://llvm.org/bugs/show_bug.cgi?id=27769

   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 27934] New: cannot find overload for unary expression

2016-05-30 Thread via llvm-bugs
https://llvm.org/bugs/show_bug.cgi?id=27934

Bug ID: 27934
   Summary: cannot find overload for unary expression
   Product: clang
   Version: trunk
  Hardware: PC
OS: Linux
Status: NEW
  Severity: normal
  Priority: P
 Component: C++
  Assignee: unassignedclangb...@nondot.org
  Reporter: noelgran...@gmail.com
CC: dgre...@apple.com, llvm-bugs@lists.llvm.org
Classification: Unclassified

Created attachment 16433
  --> https://llvm.org/bugs/attachment.cgi?id=16433&action=edit
self-contained test case

See attached test-case.

This is a stripped down copy of a utility library from LibreOffice codebase.

code was compiled with:

clang++  -std=c++11 testcase.cxx

and generates error:

typed_flags_testcase.cxx:253:48: error: invalid argument type 'typename
o3tl::typed_flags::Wrap' to unary expression
ComplexTextLayoutFlags n1(nOldLayoutMode &
~(ComplexTextLayoutFlags::ComplexDisabled|ComplexTextLayoutFlags::BiDiStrong));
  
^
1 error generated.

-- 
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 27935] New: Linking CXX executable lldb-argdumper and lldb-mi fails

2016-05-30 Thread via llvm-bugs
https://llvm.org/bugs/show_bug.cgi?id=27935

Bug ID: 27935
   Summary: Linking CXX executable lldb-argdumper and lldb-mi
fails
   Product: lldb
   Version: unspecified
  Hardware: PC
OS: Linux
Status: NEW
  Severity: release blocker
  Priority: P
 Component: All Bugs
  Assignee: lldb-...@lists.llvm.org
  Reporter: ved...@miletic.net
CC: llvm-bugs@lists.llvm.org
Classification: Unclassified

On Debian 8 with

$ g++ --version
g++ (Debian 4.9.2-10) 4.9.2
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

building LLDB inside LLVM tree with

$ cmake -DBUILD_SHARED_LIBS=ON -DLLVM_LIBDIR_SUFFIX= ..

results in

Linking CXX executable ../../../../bin/lldb-argdumper
Linking CXX executable ../../../../bin/lldb-mi
../../../../lib/liblldbUtility.a(JSON.cpp.o): In function
`lldb_private::JSONNumber::GetAsUnsigned() const':
/home/vedranm/workspace/llvm/tools/lldb/source/Utility/JSON.cpp:76: undefined
reference to `llvm::llvm_unreachable_internal(char const*, char const*,
unsigned int)'
../../../../lib/liblldbUtility.a(JSON.cpp.o): In function
`lldb_private::JSONNumber::GetAsSigned() const':
/home/vedranm/workspace/llvm/tools/lldb/source/Utility/JSON.cpp:91: undefined
reference to `llvm::llvm_unreachable_internal(char const*, char const*,
unsigned int)'
../../../../lib/liblldbUtility.a(JSON.cpp.o): In function
`lldb_private::JSONNumber::GetAsDouble() const':
/home/vedranm/workspace/llvm/tools/lldb/source/Utility/JSON.cpp:106: undefined
reference to `llvm::llvm_unreachable_internal(char const*, char const*,
unsigned int)'
collect2: error: ld returned 1 exit status
tools/lldb/tools/argdumper/CMakeFiles/lldb-argdumper.dir/build.make:179: recipe
for target 'bin/lldb-argdumper' failed
make[2]: *** [bin/lldb-argdumper] Error 1
CMakeFiles/Makefile2:27035: recipe for target
'tools/lldb/tools/argdumper/CMakeFiles/lldb-argdumper.dir/all' failed
make[1]: *** [tools/lldb/tools/argdumper/CMakeFiles/lldb-argdumper.dir/all]
Error 2
make[1]: *** Waiting for unfinished jobs
CMakeFiles/lldb-mi.dir/MIUtilParse.cpp.o: In function
`MIUtilParse::CRegexParser::CRegexParser(char const*)':
/home/vedranm/workspace/llvm/tools/lldb/tools/lldb-mi/MIUtilParse.cpp:24:
undefined reference to `llvm_regcomp'
CMakeFiles/lldb-mi.dir/MIUtilParse.cpp.o: In function
`MIUtilParse::CRegexParser::~CRegexParser()':
/home/vedranm/workspace/llvm/tools/lldb/tools/lldb-mi/MIUtilParse.cpp:39:
undefined reference to `llvm_regfree'
CMakeFiles/lldb-mi.dir/MIUtilParse.cpp.o: In function
`MIUtilParse::CRegexParser::Execute(char const*,
MIUtilParse::CRegexParser::Match&, unsigned long)':
/home/vedranm/workspace/llvm/tools/lldb/tools/lldb-mi/MIUtilParse.cpp:65:
undefined reference to `llvm_regexec'
collect2: error: ld returned 1 exit status
tools/lldb/tools/lldb-mi/CMakeFiles/lldb-mi.dir/build.make:2004: recipe for
target 'bin/lldb-mi-3.9.0' failed
make[2]: *** [bin/lldb-mi-3.9.0] Error 1
CMakeFiles/Makefile2:27323: recipe for target
'tools/lldb/tools/lldb-mi/CMakeFiles/lldb-mi.dir/all' failed
make[1]: *** [tools/lldb/tools/lldb-mi/CMakeFiles/lldb-mi.dir/all] Error 2
Makefile:137: recipe for target 'all' failed
make: *** [all] Error 2

-- 
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 27936] New: Object invariant violation: FunctionType set

2016-05-30 Thread via llvm-bugs
https://llvm.org/bugs/show_bug.cgi?id=27936

Bug ID: 27936
   Summary: Object invariant violation: FunctionType set
   Product: clang
   Version: trunk
  Hardware: All
OS: Linux
Status: NEW
  Severity: normal
  Priority: P
 Component: Frontend
  Assignee: unassignedclangb...@nondot.org
  Reporter: eugvelesev...@gmail.com
CC: llvm-bugs@lists.llvm.org
Classification: Unclassified

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

I added this assert code to FoldingSetImpl::InsertNode function
(lib/Support/FoldingSet.cpp):

 void FoldingSetImpl::InsertNode(Node *N, void *InsertPos) {
+#ifndef NDEBUG
+  FoldingSetNodeID ID; 
+  GetNodeProfile(N, ID);
+  void *InsertPos2 = 0;
+  Node *N2 = FindNodeOrInsertPos(ID, InsertPos2);
+  assert(!N2 && "Node has already been in the set");
+  assert(InsertPos == InsertPos2 && "Incorrect InsertPos");
+#endif



The first assert fails (if compile with -std=c++11) on the attached test with
stacktrace:

llvm/lib/Support/FoldingSet.cpp:336: void
llvm::FoldingSetImpl::InsertNode(llvm::FoldingSetImpl::Node*, void*): Assertion
`!N2 && "Node has already been in the set"' failed.
...
#9 0x02f94b5e
llvm::FoldingSetImpl::InsertNode(llvm::FoldingSetImpl::Node*, void*)
llvm/lib/Support/FoldingSet.cpp:337:0
#10 0x02f94943 llvm::FoldingSetImpl::GrowHashTable()
llvm/lib/Support/FoldingSet.cpp:294:0
#11 0x02f94bf0
llvm::FoldingSetImpl::InsertNode(llvm::FoldingSetImpl::Node*, void*)
llvm/lib/Support/FoldingSet.cpp:343:0
#12 0x05275306 clang::ASTContext::getFunctionType(clang::QualType,
llvm::ArrayRef, clang::FunctionProtoType::ExtProtoInfo const&)
const clang/lib/AST/ASTContext.cpp:3115:0
#13 0x052750c5 clang::ASTContext::getFunctionType(clang::QualType,
llvm::ArrayRef, clang::FunctionProtoType::ExtProtoInfo const&)
const clang/lib/AST/ASTContext.cpp:3071:0
...

Thats means there are two same FunctionProtoType objects in the set. So it
follows that we modify an object (and change hash) placed in the set.

I researched the issue placing a couple of breakpoints and found this:

A hash of FunctionProtoType depends on CanonicalDecl of ExceptionSpec
SourceDecl stored in ExtProtoInfo.
FunctionProtoType::Profile:
..
ID.AddPointer(epi.ExceptionSpec.SourceDecl->getCanonicalDecl())
..
But when clang create destructor(dtor) via clang::Sema::ActOnFunctionDeclarator
at lib/Sema/SemaDecl.cpp:7341 we use the created dtor as SourceDecl in
ExceptionSpec(in function Sema::AdjustDestructorExceptionSpec called
immediately after dtor creation) that results in creation new FunctionProtoType
because there cannot be a type in the set with just created dtor(without
previous decl) as set key. Later we call FunctionDecl::setPreviousDeclaration
for the dtor setting new canonical decl and changing the hash.

-- 
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 27932] build mesa error in backend: symbol 'x86_64_entry_start'

2016-05-30 Thread via llvm-bugs
https://llvm.org/bugs/show_bug.cgi?id=27932

Dimitry Andric  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||dimi...@andric.com
 Resolution|--- |DUPLICATE

--- Comment #1 from Dimitry Andric  ---
This is a known problem.  See bug 19778 for the workaround, which has been
required since 2014. :-/

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

-- 
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 27937] New: codecvt::do_out does not set from_next and to_next correctly on error

2016-05-30 Thread via llvm-bugs
https://llvm.org/bugs/show_bug.cgi?id=27937

Bug ID: 27937
   Summary: codecvt::do_out does
not set from_next and to_next correctly on error
   Product: libc++
   Version: unspecified
  Hardware: PC
OS: FreeBSD
Status: NEW
  Severity: normal
  Priority: P
 Component: All Bugs
  Assignee: unassignedclangb...@nondot.org
  Reporter: r...@abittechnical.com
CC: llvm-bugs@lists.llvm.org, mclow.li...@gmail.com
Classification: Unclassified

Created attachment 16436
  --> https://llvm.org/bugs/attachment.cgi?id=16436&action=edit
Program that reproduces the issue

I've noticed that our software when building on Mac OS X or FreeBSD with libc++
has a failing test due to std::codecvt::do_out
not properly assigning from_next and to_next when it returns
std::codecvt::error.

I don't have a copy of the final standard, but the draft specification of C++14
I found (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4296.pdf)
says that "It always leaves the from_next and to_next pointers pointing one
beyond the last element successfully converted" in ยง22.4.1.4.2.

If my interpretation of that specification is correct, then I think it's
supposed to convert as many characters as it can and set from_next and to_next
to one position past the last correctly converted character. This is also the
behavior of libstdc++ and MSVC. However, with libc++, from_next and to_next are
placed back in their original position.

I attached a test program that reproduces the issue. The expected output is:
Error!
pwc is now at position: 7
pc is now at position: 7

The actual output is:
Error!
pwc is now at position: 0
pc is now at position: 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
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 27938] New: The scalarizer pass remove debugloc from call instruction

2016-05-30 Thread via llvm-bugs
https://llvm.org/bugs/show_bug.cgi?id=27938

Bug ID: 27938
   Summary: The scalarizer pass remove debugloc from call
instruction
   Product: libraries
   Version: trunk
  Hardware: PC
OS: Linux
Status: NEW
  Severity: normal
  Priority: P
 Component: Scalar Optimizations
  Assignee: unassignedb...@nondot.org
  Reporter: karl-johan.karls...@ericsson.com
CC: llvm-bugs@lists.llvm.org
Classification: Unclassified

Created attachment 16437
  --> https://llvm.org/bugs/attachment.cgi?id=16437&action=edit
Reproducer:  opt -S -scalarizer -o - foo.ll

The scalarizer pass (-scalarizer) remove the debugloc from a call instruction.
The verifier pass later give the error message:

inlinable function call in a function with debug info must have a !dbg location
  %_tmp7 = tail call i16 @f1()
LLVM ERROR: Broken function found, compilation aborted!

The problem seems to be in the method Scalarizer::transferMetadata() that
always transfer the debugloc regardless of if the debugloc that is being
transfered is set or not. I'm also a bit unsure if it is a good idea to
overwrite the debugloc of an instruction that already got a perfectly fine
debugloc, why is it guaranteed that the new one is better?

Reproducer:

opt -S -scalarizer -o - foo.ll

-- 
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 27939] New: R_X86_64_GOTPCRELX reocations are not produced properly

2016-05-30 Thread via llvm-bugs
https://llvm.org/bugs/show_bug.cgi?id=27939

Bug ID: 27939
   Summary: R_X86_64_GOTPCRELX reocations are not produced
properly
   Product: libraries
   Version: trunk
  Hardware: PC
OS: Linux
Status: NEW
  Severity: normal
  Priority: P
 Component: MC
  Assignee: unassignedb...@nondot.org
  Reporter: gri...@accesssoftek.com
CC: llvm-bugs@lists.llvm.org
Classification: Unclassified

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

Using attached testcase and following commandline, there is no
R_X86_64_GOTPCRELX relocations produced my llvm-mc:

llvm-mc -relax-relocations -filetype=obj -triple=x86_64-pc-linux test.s -o
test.o
llvm-readobj -r test.o

LoadName: 
Relocations [
  Section (3) .rela.text {
0x2 R_X86_64_GOTPCREL bar 0xFFFC
0x8 R_X86_64_GOTPCREL bar 0xFFFC
0xE R_X86_64_GOTPCREL bar 0xFFFC
0x14 R_X86_64_GOTPCREL bar 0xFFFC
0x1A R_X86_64_GOTPCREL bar 0xFFFC
0x20 R_X86_64_GOTPCREL bar 0xFFFC
0x26 R_X86_64_GOTPCREL bar 0xFFFC
0x2D R_X86_64_GOTPCREL bar 0xFFFC
0x34 R_X86_64_GOTPCREL bar 0xFFFC
0x3B R_X86_64_REX_GOTPCRELX bar 0xFFFC
0x42 R_X86_64_REX_GOTPCRELX bar 0xFFFC
0x49 R_X86_64_REX_GOTPCRELX bar 0xFFFC
0x50 R_X86_64_REX_GOTPCRELX bar 0xFFFC
0x57 R_X86_64_REX_GOTPCRELX bar 0xFFFC
0x5E R_X86_64_REX_GOTPCRELX bar 0xFFFC
0x65 R_X86_64_REX_GOTPCRELX bar 0xFFFC
0x6C R_X86_64_REX_GOTPCRELX bar 0xFFFC
0x73 R_X86_64_REX_GOTPCRELX bar 0xFFFC
0x79 R_X86_64_GOTPCREL foo 0xFFFC
0x7F R_X86_64_GOTPCREL foo 0xFFFC
0x85 R_X86_64_GOTPCREL foo 0xFFFC
0x8B R_X86_64_GOTPCREL foo 0xFFFC
0x91 R_X86_64_GOTPCREL foo 0xFFFC
0x97 R_X86_64_GOTPCREL foo 0xFFFC
0x9D R_X86_64_GOTPCREL foo 0xFFFC
0xA4 R_X86_64_GOTPCREL foo 0xFFFC
0xAB R_X86_64_GOTPCREL foo 0xFFFC
0xB2 R_X86_64_REX_GOTPCRELX foo 0xFFFC
0xB9 R_X86_64_REX_GOTPCRELX foo 0xFFFC
0xC0 R_X86_64_REX_GOTPCRELX foo 0xFFFC
0xC7 R_X86_64_REX_GOTPCRELX foo 0xFFFC
0xCE R_X86_64_REX_GOTPCRELX foo 0xFFFC
0xD5 R_X86_64_REX_GOTPCRELX foo 0xFFFC
0xDC R_X86_64_REX_GOTPCRELX foo 0xFFFC
0xE3 R_X86_64_REX_GOTPCRELX foo 0xFFFC
0xEA R_X86_64_REX_GOTPCRELX foo 0xFFFC
  }
]


While gas produces them:
as --64 -mrelax-relocations=yes test.s -o test.o

LoadName: 
Relocations [
  Section (2) .rela.text {
0x2 R_X86_64_GOTPCRELX bar 0xFFFC
0x8 R_X86_64_GOTPCRELX bar 0xFFFC
0xE R_X86_64_GOTPCRELX bar 0xFFFC
0x14 R_X86_64_GOTPCRELX bar 0xFFFC
0x1A R_X86_64_GOTPCRELX bar 0xFFFC
0x20 R_X86_64_GOTPCRELX bar 0xFFFC
0x26 R_X86_64_GOTPCRELX bar 0xFFFC
0x2D R_X86_64_REX_GOTPCRELX bar 0xFFFC
0x34 R_X86_64_REX_GOTPCRELX bar 0xFFFC
0x3B R_X86_64_REX_GOTPCRELX bar 0xFFFC
0x42 R_X86_64_REX_GOTPCRELX bar 0xFFFC
0x49 R_X86_64_REX_GOTPCRELX bar 0xFFFC
0x50 R_X86_64_REX_GOTPCRELX bar 0xFFFC
0x57 R_X86_64_REX_GOTPCRELX bar 0xFFFC
0x5E R_X86_64_REX_GOTPCRELX bar 0xFFFC
0x65 R_X86_64_REX_GOTPCRELX bar 0xFFFC
0x6C R_X86_64_REX_GOTPCRELX bar 0xFFFC
0x73 R_X86_64_REX_GOTPCRELX bar 0xFFFC
0x79 R_X86_64_GOTPCRELX foo 0xFFFC
0x7F R_X86_64_GOTPCRELX foo 0xFFFC
0x85 R_X86_64_GOTPCRELX foo 0xFFFC
0x8B R_X86_64_GOTPCRELX foo 0xFFFC
0x91 R_X86_64_GOTPCRELX foo 0xFFFC
0x97 R_X86_64_GOTPCRELX foo 0xFFFC
0x9D R_X86_64_GOTPCRELX foo 0xFFFC
0xA4 R_X86_64_REX_GOTPCRELX foo 0xFFFC
0xAB R_X86_64_REX_GOTPCRELX foo 0xFFFC
0xB2 R_X86_64_REX_GOTPCRELX foo 0xFFFC
0xB9 R_X86_64_REX_GOTPCRELX foo 0xFFFC
0xC0 R_X86_64_REX_GOTPCRELX foo 0xFFFC
0xC7 R_X86_64_REX_GOTPCRELX foo 0xFFFC
0xCE R_X86_64_REX_GOTPCRELX foo 0xFFFC
0xD5 R_X86_64_REX_GOTPCRELX foo 0xFFFC
0xDC R_X86_64_REX_GOTPCRELX foo 0xFFFC
0xE3 R_X86_64_REX_GOTPCRELX foo 0xFFFC
0xEA R_X86_64_REX_GOTPCRELX foo 0xFFFC
  }
]

-- 
You are receiving this mail because:
You are on the CC list for the bug.
___
llvm-bugs mail

[llvm-bugs] [Bug 27940] New: DSE Produce different result with/-out debug intrinsic

2016-05-30 Thread via llvm-bugs
https://llvm.org/bugs/show_bug.cgi?id=27940

Bug ID: 27940
   Summary: DSE Produce different result with/-out debug intrinsic
   Product: libraries
   Version: trunk
  Hardware: PC
OS: Linux
Status: NEW
  Severity: normal
  Priority: P
 Component: Scalar Optimizations
  Assignee: unassignedb...@nondot.org
  Reporter: henric.karls...@ericsson.com
CC: llvm-bugs@lists.llvm.org
Classification: Unclassified

-- 
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 27941] New: Clang segfaults when considering non-special defaulted assignment operator.

2016-05-30 Thread via llvm-bugs
https://llvm.org/bugs/show_bug.cgi?id=27941

Bug ID: 27941
   Summary: Clang segfaults when considering non-special defaulted
assignment operator.
   Product: clang
   Version: trunk
  Hardware: PC
OS: Windows NT
Status: NEW
  Severity: normal
  Priority: P
 Component: C++
  Assignee: unassignedclangb...@nondot.org
  Reporter: e...@efcs.ca
CC: dgre...@apple.com, llvm-bugs@lists.llvm.org
Classification: Unclassified

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

-- 
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 27942] New: Matrix std::inner_product optimization issues

2016-05-30 Thread via llvm-bugs
https://llvm.org/bugs/show_bug.cgi?id=27942

Bug ID: 27942
   Summary: Matrix std::inner_product optimization issues
   Product: libraries
   Version: trunk
  Hardware: PC
OS: Linux
Status: NEW
  Severity: enhancement
  Priority: P
 Component: Backend: X86
  Assignee: unassignedb...@nondot.org
  Reporter: peet@yandex.com
CC: llvm-bugs@lists.llvm.org
Classification: Unclassified

Clang/LLVM generates inefficient code for the inner product of two matrices.

Reproduction code:
https://gist.github.com/cynecx/e1b44a67e74bac257ed9e632c982fc7f

The code clang generates:

===

Matrix<(unsigned short)3, (unsigned short)3, float> Matrix<(unsigned short)3,
(unsigned short)3, float>::operator*<(unsigned short)3>(Matrix<(unsigned
short)3, (unsigned short)3, float> const&): # @Matrix<(unsigned short)3,
(unsigned short)3, float> Matrix<(unsigned short)3, (unsigned short)3,
float>::operator*<(unsigned short)3>(Matrix<(unsigned short)3, (unsigned
short)3, float> const&)
pushr15
pushr14
pushr13
pushr12
pushrbx
sub rsp, 160
mov r14, rdx
mov r13, rsi
mov r15, rdi
xorps   xmm0, xmm0
movups  xmmword ptr [r15 + 16], xmm0
movups  xmmword ptr [r15], xmm0
mov dword ptr [r15 + 32], 0
lea r12, [rsp + 98]
xor ebx, ebx
.LBB1_1:#
%_ZN6MatrixILt3ELt3EfE14GetRowAccessorEt.exit1
mov qword ptr [rsp + 136], r13
mov qword ptr [rsp + 144], rbx
mov word ptr [rsp + 152], 0
mov qword ptr [rsp + 112], r13
mov qword ptr [rsp + 120], rbx
mov word ptr [rsp + 128], 3
mov qword ptr [rsp + 88], r14
mov word ptr [rsp + 96], 0
mov ax, word ptr [rsp + 86]
mov word ptr [r12 + 4], ax
mov eax, dword ptr [rsp + 82]
mov dword ptr [r12], eax
mov word ptr [rsp + 104], 0
mov rax, qword ptr [rsp + 104]
mov qword ptr [rsp + 64], rax
movups  xmm0, xmmword ptr [rsp + 88]
movups  xmmword ptr [rsp + 48], xmm0
mov rax, qword ptr [rsp + 128]
mov qword ptr [rsp + 40], rax
movups  xmm0, xmmword ptr [rsp + 112]
movups  xmmword ptr [rsp + 24], xmm0
mov rax, qword ptr [rsp + 152]
mov qword ptr [rsp + 16], rax
movups  xmm0, xmmword ptr [rsp + 136]
movups  xmmword ptr [rsp], xmm0
xorps   xmm0, xmm0
callfloat std::inner_product::MatrixAccessorIterator::MatrixRowAccessor >, (unsigned
short)3>, Matrix<(unsigned short)3, (unsigned short)3,
float>::MatrixAccessorIterator::MatrixColumnAccessor const>, (unsigned short)3>,
float>(Matrix<(unsigned short)3, (unsigned short)3,
float>::MatrixAccessorIterator::MatrixRowAccessor >, (unsigned short)3>,
Matrix<(unsigned short)3, (unsigned short)3,
float>::MatrixAccessorIterator::MatrixRowAccessor >, (unsigned short)3>,
Matrix<(unsigned short)3, (unsigned short)3,
float>::MatrixAccessorIterator::MatrixColumnAccessor const>, (unsigned short)3>,
float)
movss   dword ptr [r15 + 4*rbx], xmm0
mov qword ptr [rsp + 136], r13
mov qword ptr [rsp + 144], rbx
mov word ptr [rsp + 152], 0
mov qword ptr [rsp + 112], r13
mov qword ptr [rsp + 120], rbx
mov word ptr [rsp + 128], 3
mov qword ptr [rsp + 88], r14
mov word ptr [rsp + 96], 1
mov ax, word ptr [rsp + 86]
mov word ptr [r12 + 4], ax
mov eax, dword ptr [rsp + 82]
mov dword ptr [r12], eax
mov word ptr [rsp + 104], 0
mov rax, qword ptr [rsp + 104]
mov qword ptr [rsp + 64], rax
movups  xmm0, xmmword ptr [rsp + 88]
movups  xmmword ptr [rsp + 48], xmm0
mov rax, qword ptr [rsp + 128]
mov qword ptr [rsp + 40], rax
movups  xmm0, xmmword ptr [rsp + 112]
movups  xmmword ptr [rsp + 24], xmm0
mov rax, qword ptr [rsp + 152]
mov qword ptr [rsp + 16], rax
movups  xmm0, xmmword ptr [rsp + 136]
movups  xmmword ptr [rsp], xmm0
xorps   xmm0, xmm0
callfloat std::inner_product::MatrixAccessorIterator::MatrixRowAccessor >, (unsigned
short)3>, Matrix<(unsigned short)3, (unsigned short)3,
float>::MatrixAccessorIterator::MatrixColumnAccessor const>, (unsigned short)3>,
float>(Matrix<(unsigned short)3, (unsigned short)3,
float>::MatrixAccessorIterator::MatrixRowAccessor >, (unsigned short)3>,
Matrix<(unsigned short)3, (unsigned short)3,
float>::MatrixAccessorIterator::MatrixRowAccessor >, (unsigned short)3>,
Matrix<(unsigned short)3, (unsigned short)3,
float>::MatrixAccessorIterato

[llvm-bugs] [Bug 27943] New: powerpc: "Bad machine code: Using an undefined physical register"

2016-05-30 Thread via llvm-bugs
https://llvm.org/bugs/show_bug.cgi?id=27943

Bug ID: 27943
   Summary: powerpc: "Bad machine code: Using an undefined
physical register"
   Product: new-bugs
   Version: 3.8
  Hardware: PC
OS: All
Status: NEW
  Severity: normal
  Priority: P
 Component: new bugs
  Assignee: unassignedb...@nondot.org
  Reporter: vtjn...@gmail.com
CC: llvm-bugs@lists.llvm.org
Classification: Unclassified

Created attachment 16441
  --> https://llvm.org/bugs/attachment.cgi?id=16441&action=edit
bugpoint-reduced powerpc64le peephole optimization bug

The attached code asserts when compiling with llc (no extra arguments needed),
in what appears to be a failure to update the imp-def register list during
instruction replacement by Peephole Optimizations.

The observed error message is:

```
*** Bad machine code: Using an undefined physical register ***
- function:julia_gcd_50079
- basic block: BB#4 L14 (0x7fae4202aa98)
- instruction: %vreg121 = COPY
- operand 1:   %CR0
LLVM ERROR: Found 1 machine code errors.
```

Before peephole optimizations, the SUBFC8 is used:

```
# *** IR Dump After Machine code sinking ***:
%vreg24 = SUBFC8 %vreg18, %vreg12, %CARRY;
G8RC_and_G8RC_NOX0:%vreg24 G8RC:%vreg18,%vreg12
```

Afterwards, the `SUBFC8o` alias is used instead (this replacement is correct):

```
# *** IR Dump After Peephole Optimizations ***:
%vreg24 = SUBFC8o %vreg18, %vreg12, %CARRY;
G8RC_and_G8RC_NOX0:%vreg24 G8RC:%vreg18,%vreg12
%vreg35 = COPY %CR0; CRRC:%vreg35
```

However, this replacement should have added `%CR0`, but didn't. (the
PPCInstrInfo.td entry for `multiclass XOForm_1rc` of which this instruction is
an alias of an instance reflects this correctly.)

-- 
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 27944] New: Miscompile after Sanjoy's SCEV changes

2016-05-30 Thread via llvm-bugs
https://llvm.org/bugs/show_bug.cgi?id=27944

Bug ID: 27944
   Summary: Miscompile after Sanjoy's SCEV changes
   Product: Polly
   Version: unspecified
  Hardware: PC
OS: Linux
Status: NEW
  Severity: normal
  Priority: P
 Component: Other
  Assignee: polly-...@googlegroups.com
  Reporter: tob...@grosser.es
CC: llvm-bugs@lists.llvm.org
Classification: Unclassified

It seems that after Sanjoys SCEV changes that happend between 115336 and 115351
a miscompile was introduced in FAIL: lencod.execution_time

http://lab.llvm.org:8011/builders/perf-x86_64-penryn-O3-polly-before-vectorizer-unprofitable/builds/3034

To the the build-breakage that happened before it is not easily possible to
track down the precise version.

-- 
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 27945] New: Compiler crash in "Induction Variable Simplification" for "-fno-exceptions"

2016-05-30 Thread via llvm-bugs
https://llvm.org/bugs/show_bug.cgi?id=27945

Bug ID: 27945
   Summary: Compiler crash in "Induction Variable Simplification"
for "-fno-exceptions"
   Product: new-bugs
   Version: trunk
  Hardware: PC
OS: Linux
Status: NEW
  Severity: normal
  Priority: P
 Component: new bugs
  Assignee: unassignedb...@nondot.org
  Reporter: mich...@sloede.com
CC: llvm-bugs@lists.llvm.org
Classification: Unclassified

Created attachment 16442
  --> https://llvm.org/bugs/attachment.cgi?id=16442&action=edit
Stack trace, run script, preprocessed source

Given certain optimization flags, clang crashes in "Induction Variable
Simplification" during compilation. This behavior was observed both with
r270962 and r271230, but not with r253770. The bug can be triggered/prevented
reproducibly by adding/omitting the "-fno-exceptions" flag. Here is the full
stacktrace:

AILED: /pds/opt/llvm-20160530-r271230/bin/clang++-O3 -DNDEBUG -mtune=native
-fvectorize -fslp-vectorize -DUSE_RESTRICT -DCOMPILER_ATTRIBUTES
-DDISABLE_FV_MG -fstrict-aliasing -fslp-vectorize-aggressive -fno-rtti
-fno-exceptions -fomit-frame-pointer -march=native -mtune=native -std=c++14
-stdlib=libc++ -Wall -Wextra -pedantic -Wshadow -Wfloat-equal -Wcast-align
-Wfloat-equal -Wdisabled-optimization -Wformat=2 -Winvalid-pch -Winit-self
-Wmissing-include-dirs -Wredundant-decls -Wpacked -Wpointer-arith
-Wstack-protector -Wswitch-default -Wwrite-strings -Wno-type-safety -Werror
-Wunused -Wno-infinite-recursion -Wno-undefined-var-template -Isrc -isystem
/pds/opt/fftw/include -isystem /pds/opt/parallel-netcdf-1.7.0/include -isystem
/pds/opt/openmpi/include -MMD -MT src/CMakeFiles/zfs.dir/zfsfvmbblock3d.cpp.o
-MF src/CMakeFiles/zfs.dir/zfsfvmbblock3d.cpp.o.d -o
src/CMakeFiles/zfs.dir/zfsfvmbblock3d.cpp.o -c src/zfsfvmbblock3d.cpp
clang-3.9:
/pds/opt/install/llvm/llvm-20160530-r271230-src/lib/Transforms/Scalar/IndVarSimplify.cpp:2105:
bool (anonymous namespace)::IndVarSimplify::run(llvm::Loop *): Assertion
`L->isRecursivelyLCSSAForm(*DT) && "LCSSA required to run indvars!"' failed.
#0 0x000001a48248 llvm::sys::PrintStackTrace(llvm::raw_ostream&)
(/aia/opt/llvm-20160530-r271230/bin/clang-3.9+0x1a48248)
#1 0x01a48977 SignalHandler(int)
(/aia/opt/llvm-20160530-r271230/bin/clang-3.9+0x1a48977)
#2 0x7f3ea3c6f870 __restore_rt (/lib64/libpthread.so.0+0xf870)
#3 0x7f3ea2eb00a7 __GI_raise (/lib64/libc.so.6+0x350a7)
#4 0x7f3ea2eb1458 __GI_abort (/lib64/libc.so.6+0x36458)
#5 0x7f3ea2ea9126 __assert_fail_base (/lib64/libc.so.6+0x2e126)
#6 0x7f3ea2ea91d2 (/lib64/libc.so.6+0x2e1d2)
#7 0x018d65f8 (anonymous namespace)::IndVarSimplify::run(llvm::Loop*)
(/aia/opt/llvm-20160530-r271230/bin/clang-3.9+0x18d65f8)
#8 0x018cf698 (anonymous
namespace)::IndVarSimplifyLegacyPass::runOnLoop(llvm::Loop*,
llvm::LPPassManager&) (/aia/opt/llvm-20160530-r271230/bin/clang-3.9+0x18cf698)
#9 0x00000242383e llvm::LPPassManager::runOnFunction(llvm::Function&)
(/aia/opt/llvm-20160530-r271230/bin/clang-3.9+0x242383e)
#10 0x0000016474e4 llvm::FPPassManager::runOnFunction(llvm::Function&)
(/aia/opt/llvm-20160530-r271230/bin/clang-3.9+0x16474e4)
#11 0x02402588 (anonymous
namespace)::CGPassManager::runOnModule(llvm::Module&)
(/aia/opt/llvm-20160530-r271230/bin/clang-3.9+0x2402588)
#12 0x01647bf5 llvm::legacy::PassManagerImpl::run(llvm::Module&)
(/aia/opt/llvm-20160530-r271230/bin/clang-3.9+0x1647bf5)
#13 0x01ba9353 clang::EmitBackendOutput(clang::DiagnosticsEngine&,
clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions
const&, llvm::DataLayout const&, llvm::Module*, clang::BackendAction,
llvm::raw_pwrite_stream*)
(/aia/opt/llvm-20160530-r271230/bin/clang-3.9+0x1ba9353)
#14 0x022d5a8d
clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&)
(/aia/opt/llvm-20160530-r271230/bin/clang-3.9+0x22d5a8d)
#15 0x026ab6a6 clang::ParseAST(clang::Sema&, bool, bool)
(/aia/opt/llvm-20160530-r271230/bin/clang-3.9+0x26ab6a6)
#16 0x01f777c5 clang::FrontendAction::Execute()
(/aia/opt/llvm-20160530-r271230/bin/clang-3.9+0x1f777c5)
#17 0x01f3ece1
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&)
(/aia/opt/llvm-20160530-r271230/bin/clang-3.9+0x1f3ece1)
#18 0x0200d645
clang::ExecuteCompilerInvocation(clang::CompilerInstance*)
(/aia/opt/llvm-20160530-r271230/bin/clang-3.9+0x200d645)
#19 0x007839d7 cc1_main(llvm::ArrayRef, char const*,
void*) (/aia/opt/llvm-20160530-r271230/bin/clang-3.9+0x7839d7)
#20 0x0078247d main
(/aia/opt/llvm-20160530-r271230/bin/clang-3.9+0x78247d)
#21 0x7f3ea2e9cb05 __libc_start_main (/lib64/libc.so.6+0x21b05)
#22 0x0077f282 _start
/home/abuild/rpmb