[llvm-bugs] [Bug 26334] New: Segmentation fault with attribute aligned

2016-01-27 Thread via llvm-bugs
https://llvm.org/bugs/show_bug.cgi?id=26334

Bug ID: 26334
   Summary: Segmentation fault with attribute aligned
   Product: clang
   Version: 3.6
  Hardware: PC
OS: Linux
Status: NEW
  Severity: normal
  Priority: P
 Component: -New Bugs
  Assignee: unassignedclangb...@nondot.org
  Reporter: wangynu...@gmail.com
CC: llvm-bugs@lists.llvm.org
Classification: Unclassified

Currently, I am working on a big project with clang. I met a segmentation fault
when compile the project with clang. Here is the sample code:

#include 
#include 

typedef __attribute__ ((aligned (16))) struct uint128_t_str {
uint64_t i1; 
uint64_t i2; 
} uint128_t;

uint128_t data = {0xBADBEEF, 0xDEADBEEF};

uint128_t GetData() {
return data;
}

int main() {
uint128_t val;
int i = 0;
val = GetData();
}

==
I compile it with clang -O0 -m32 test.c, it will crash with segmentation fault
while gcc is OK.

I think it's because clang does not align some data to the specific address,
but not very sure.

-- 
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 26335] New: lldb (after 3.7.x) compilation fails at link-time with shared library

2016-01-27 Thread via llvm-bugs
https://llvm.org/bugs/show_bug.cgi?id=26335

Bug ID: 26335
   Summary: lldb (after 3.7.x) compilation fails at link-time with
shared library
   Product: lldb
   Version: 3.8
  Hardware: PC
OS: Linux
Status: NEW
  Severity: normal
  Priority: P
 Component: All Bugs
  Assignee: lldb-...@lists.llvm.org
  Reporter: voyageu...@gmail.com
CC: llvm-bugs@lists.llvm.org
Classification: Unclassified

Created attachment 15726
  --> https://llvm.org/bugs/attachment.cgi?id=15726&action=edit
Build log showing lldb link failure

Link operation fails in lllb for versions > 3.7 (3.7.1 works fine), with shared
library and --as-needed link flag (enabled by default in most distributions).
There are many errors "undefined reference to `llvm::*". I am attaching a full
build log (bzipped for size).
It would be nice to have this one fixed for 3.8 release

Note: this is on trunk build, but I saw it too before the 3.8 branch (the
Gentoo ebuild for 3.8 rc1 is not ready yet)

FAILED: : && /usr/bin/x86_64-pc-linux-gnu-g++   -march=native -O2 -pipe  -fPIC
-fvisibility-inlines-hidden -Wall -W -Wno-unused-parameter -Wwrite-strings
-Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long
-Wno-maybe-uninitialized -Wdelete-non-virtual-dtor -Wno-comment
-Werror=date-time -std=c++11 -ffunction-sections -fdata-sections
-Wno-deprecated-declarations -Wno-unknown-pragmas -Wno-strict-aliasing
-Wno-deprecated-register -Wno-vla-extension  -fno-exceptions -fno-rtti  -Wl,-O1
-Wl,--as-needed -Wl,-allow-shlib-undefined -Wl,-O3 -Wl,--gc-sections
tools/lldb/tools/lldb-server/CMakeFiles/lldb-server.dir/Acceptor.cpp.o
tools/lldb/tools/lldb-server/CMakeFiles/lldb-server.dir/lldb-gdbserver.cpp.o
tools/lldb/tools/lldb-server/CMakeFiles/lldb-server.dir/lldb-platform.cpp.o
tools/lldb/tools/lldb-server/CMakeFiles/lldb-server.dir/lldb-server.cpp.o
tools/lldb/tools/lldb-server/CMakeFiles/lldb-server.dir/LLDBServerUtilities.cpp.o
 -o bin/lldb-server-3.9.0  lib64/liblldb.so.3.9.0 -lcurses -lform -lpanel
-lcurses -lpython2.7 -lxml2 -lpthread -ldl -lcurses -lform -lpanel
lib64/libLLVMBPFCodeGen.so lib64/libLLVMBPFAsmPrinter.so
lib64/libLLVMBPFDesc.so lib64/libLLVMBPFInfo.so
lib64/libLLVMCppBackendCodeGen.so lib64/libLLVMCppBackendInfo.so
lib64/libLLVMX86CodeGen.so lib64/libLLVMX86AsmPrinter.so
lib64/libLLVMX86AsmParser.so lib64/libLLVMX86Desc.so lib64/libLLVMX86Info.so
lib64/libLLVMX86Disassembler.so lib64/libLLVMInterpreter.so
lib64/libLLVMAsmParser.so lib64/libLLVMBitReader.so lib64/libLLVMBitWriter.so
lib64/libLLVMCodeGen.so lib64/libLLVMipo.so lib64/libLLVMSelectionDAG.so
lib64/libLLVMMC.so lib64/libLLVMMCJIT.so lib64/libLLVMCore.so
lib64/libLLVMMCDisassembler.so lib64/libLLVMExecutionEngine.so
lib64/libLLVMRuntimeDyld.so lib64/libLLVMOption.so lib64/libLLVMSupport.so
-Wl,--start-group lib64/liblldbBase.a lib64/liblldbBreakpoint.a
lib64/liblldbCommands.a lib64/liblldbDataFormatters.a lib64/liblldbHost.a
lib64/liblldbCore.a lib64/liblldbExpression.a lib64/liblldbInitialization.a
lib64/liblldbInterpreter.a lib64/liblldbSymbol.a lib64/liblldbTarget.a
lib64/liblldbUtility.a lib64/liblldbPluginDisassemblerLLVM.a
lib64/liblldbPluginSymbolFileDWARF.a lib64/liblldbPluginSymbolFileSymtab.a
lib64/liblldbPluginDynamicLoaderStatic.a
lib64/liblldbPluginDynamicLoaderPosixDYLD.a
lib64/liblldbPluginDynamicLoaderHexagonDYLD.a
lib64/liblldbPluginDynamicLoaderWindowsDYLD.a
lib64/liblldbPluginCPlusPlusLanguage.a lib64/liblldbPluginGoLanguage.a
lib64/liblldbPluginObjCLanguage.a lib64/liblldbPluginObjCPlusPlusLanguage.a
lib64/liblldbPluginObjectFileELF.a lib64/liblldbPluginObjectFileJIT.a
lib64/liblldbPluginSymbolVendorELF.a
lib64/liblldbPluginObjectContainerBSDArchive.a
lib64/liblldbPluginObjectContainerMachOArchive.a
lib64/liblldbPluginProcessGDBRemote.a lib64/liblldbPluginProcessUtility.a
lib64/liblldbPluginPlatformAndroid.a lib64/liblldbPluginPlatformGDB.a
lib64/liblldbPluginPlatformFreeBSD.a lib64/liblldbPluginPlatformKalimba.a
lib64/liblldbPluginPlatformLinux.a lib64/liblldbPluginPlatformNetBSD.a
lib64/liblldbPluginPlatformPOSIX.a lib64/liblldbPluginPlatformWindows.a
lib64/liblldbPluginPlatformMacOSX.a
lib64/liblldbPluginDynamicLoaderMacOSXDYLD.a
lib64/liblldbPluginUnwindAssemblyInstEmulation.a
lib64/liblldbPluginUnwindAssemblyX86.a lib64/liblldbPluginAppleObjCRuntime.a
lib64/liblldbPluginRenderScriptRuntime.a lib64/liblldbPluginLanguageRuntimeGo.a
lib64/liblldbPluginCXXItaniumABI.a lib64/liblldbPluginABIMacOSX_arm.a
lib64/liblldbPluginABIMacOSX_arm64.a lib64/liblldbPluginABIMacOSX_i386.a
lib64/liblldbPluginABISysV_arm.a lib64/liblldbPluginABISysV_arm64.a
lib64/liblldbPluginABISysV_i386.a lib64/liblldbPluginABISysV_x86_64.a
lib64/liblldbPluginABISysV_hexagon.a lib64/liblldbPluginABISysV_ppc.a
lib64/liblldbPluginABISysV_ppc64.a lib64/liblldbPluginABISysV_mips.a
lib64/liblldbPluginABISysV_mips64.a lib64/liblldbPluginIn

[llvm-bugs] [Bug 26173] 4 test failures on PPC64 & PPC64LE

2016-01-27 Thread via llvm-bugs
https://llvm.org/bugs/show_bug.cgi?id=26173

İsmail Dönmez  changed:

   What|Removed |Added

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

--- Comment #2 from İsmail Dönmez  ---
This was yet another fallout from r258180 , 3.8 branch is fine now. 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
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 26173] 4 test failures on PPC64 & PPC64LE

2016-01-27 Thread via llvm-bugs
https://llvm.org/bugs/show_bug.cgi?id=26173

İsmail Dönmez  changed:

   What|Removed |Added

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

--- Comment #3 from İsmail Dönmez  ---
Oh sorry checked the wrong machine. This tests still fail on PPC64, PPC64LE.
The builds are Release without Asserts.

-- 
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 26336] New: Clang allows address of array with 'register' storage-class to be taken

2016-01-27 Thread via llvm-bugs
https://llvm.org/bugs/show_bug.cgi?id=26336

Bug ID: 26336
   Summary: Clang allows address of array with 'register'
storage-class to be taken
   Product: clang
   Version: unspecified
  Hardware: All
OS: All
Status: NEW
  Severity: normal
  Priority: P
 Component: -New Bugs
  Assignee: unassignedclangb...@nondot.org
  Reporter: sne...@dei.uc.pt
CC: llvm-bugs@lists.llvm.org
Classification: Unclassified

Example:

  extern int f(int *);

  int main() {
register int x[1];  
return f(x);
  }

The C99 standard, in footnote 100 of §6.7.1, states

> However, whether or not addressable storage is actually used, the address 
> of any part of an object declared with storage-class specifier register
> cannot be computed, either explicitly (by use of the unary & operator as 
> discussed in 6.5.3.2) or implicitly (by converting an array name to a 
> pointer as discussed in 6.3.2.1).

Clang already does the right thing for explicit & operators on register
variables. However it misses the implicit pointer decay of array types.
Thus the example above should fail with a "address of register variable 
requested" error message.

-- 
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 26337] New: extern "C" void fun(struct dummy, struct foo) doesn't always work

2016-01-27 Thread via llvm-bugs
https://llvm.org/bugs/show_bug.cgi?id=26337

Bug ID: 26337
   Summary: extern "C" void fun(struct dummy, struct foo) doesn't
always work
   Product: clang
   Version: unspecified
  Hardware: PC
OS: Windows NT
Status: NEW
  Severity: normal
  Priority: P
 Component: -New Bugs
  Assignee: unassignedclangb...@nondot.org
  Reporter: hjl.to...@gmail.com
CC: llvm-bugs@lists.llvm.org
Classification: Unclassified

On x86-64, I got

[hjl@gnu-6 empty-1]$ cat emptya.c
#include "empty.h"
void fun(struct dummy d, struct foo f)
{
  if (f.i1 != -1)
__builtin_abort();
}
[hjl@gnu-6 empty-1]$ cat empty.cc
#include "empty.h"
extern "C" void fun(struct dummy, struct foo);

int main()
{
  struct dummy d;
  struct foo f = { -1, -2, -3, -4, -5 };

  fun(d, f);
  return 0;
}
[hjl@gnu-6 empty-1]$ cat empty.h
#ifdef __x86_64__
# ifndef PAD_SIZE
#  define PAD_SIZE 16
# endif
struct dummy0 { };
struct dummy { struct dummy0 d[PAD_SIZE]; };
#else
# ifndef PAD_SIZE
struct dummy { };
# else
struct dummy0 { };
struct dummy { struct dummy0 d[1]; };
# endif
#endif

struct foo
{
  int i1;
  int i2;
  int i3;
  int i4;
  int i5;
};
[hjl@gnu-6 empty-1]$ make
/export/build/gnu/llvm-clang/build-x86_64-linux/bin/clang -m32 -c -O emptya.c
/export/build/gnu/llvm-clang/build-x86_64-linux/bin/clang++ -m32 -c -O empty.cc
/export/build/gnu/llvm-clang/build-x86_64-linux/bin/clang -m32 -o x emptya.o
empty.o
/export/build/gnu/llvm-clang/build-x86_64-linux/bin/clang -m32 -c -O -o
empty1a.o emptya.c -DPAD_SIZE=17
/export/build/gnu/llvm-clang/build-x86_64-linux/bin/clang++ -m32 -c -O -o
empty1.o  empty.cc -DPAD_SIZE=17
/export/build/gnu/llvm-clang/build-x86_64-linux/bin/clang -m32 -o y empty1a.o
empty1.o
./x
./y
Makefile:17: recipe for target 'all' failed
make: *** [all] Aborted
[hjl@gnu-6 empty-1]$ make
/export/build/gnu/llvm-clang/build-x86_64-linux/bin/clang -c -O emptya.c
/export/build/gnu/llvm-clang/build-x86_64-linux/bin/clang++ -c -O empty.cc
/export/build/gnu/llvm-clang/build-x86_64-linux/bin/clang -o x emptya.o empty.o
/export/build/gnu/llvm-clang/build-x86_64-linux/bin/clang -c -O -o empty1a.o
emptya.c -DPAD_SIZE=17
/export/build/gnu/llvm-clang/build-x86_64-linux/bin/clang++ -c -O -o empty1.o 
empty.cc -DPAD_SIZE=17
/export/build/gnu/llvm-clang/build-x86_64-linux/bin/clang -o y empty1a.o
empty1.o
./x
./y
Makefile:17: recipe for target 'all' failed
make: *** [all] Aborted
[hjl@gnu-6 empty-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 26338] New: [AVX512]: 3.8 and trunk llc fails on gather.qps and scatter.qps

2016-01-27 Thread via llvm-bugs
https://llvm.org/bugs/show_bug.cgi?id=26338

Bug ID: 26338
   Summary: [AVX512]: 3.8 and trunk llc fails on gather.qps and
scatter.qps
   Product: tools
   Version: trunk
  Hardware: PC
OS: Linux
Status: NEW
  Severity: normal
  Priority: P
 Component: llc
  Assignee: unassignedb...@nondot.org
  Reporter: anton.mitrok...@phystech.edu
CC: llvm-bugs@lists.llvm.org
Classification: Unclassified

Created attachment 15728
  --> https://llvm.org/bugs/attachment.cgi?id=15728&action=edit
Reproducer for gather.qps.512 llc fail

; Here is a small reproducer:
;foo_scatter.ll:

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

; Function Attrs: argmemonly nounwind
declare void @llvm.x86.avx512.scatter.qps.512(i8*, i8, <8 x i64>, <8 x float>,
i32) #0

; Function Attrs: nounwind
define void @f_fu() #1 {
foreach_reset:
  call void @llvm.x86.avx512.scatter.qps.512(i8* undef, i8 127, <8 x i64> , <8 x
float> undef, i32 1) #1
  ret void
}

attributes #0 = { argmemonly nounwind }
attributes #1 = { nounwind }

!llvm.ident = !{!0}

!0 = !{!"clang version 3.8.0 (branches/release_38)"}


foo_gather.ll:
see attachment

Run llc (3.8 or trunk):
llc -mcpu=knl foo_scatter.ll
llc -mcpu=knl foo_gather.ll

Both commands will output something similar to:
llc:
/export/users/nightly/llvm/llvm-3.8/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1110:
llvm::SDValue llvm::SelectionDAG::getConstant(uint64_t, llvm::SDLoc, llvm::EVT,
bool, bool): Assertion `(EltVT.getSizeInBits() >= 64 || (uint64_t)((int64_t)Val
>> EltVT.getSizeInBits()) + 1 < 2) && "getConstant with a uint64_t value that
doesn't fit in the type!"' failed.
#0 0x01144048 llvm::sys::PrintStackTrace(llvm::raw_ostream&)
(/llvm/bin-3.8/bin/llc+0x1144048)
#1 0x011447b7 (/llvm/bin-3.8/bin/llc+0x11447b7)
#2 0x7fccb27da430 __restore_rt (/lib64/libpthread.so.0+0x10430)
#3 0x7fccb176f9c8 __GI_raise (/lib64/libc.so.6+0x349c8)
#4 0x7fccb177165a __GI_abort (/lib64/libc.so.6+0x3665a)
#5 0x7fccb1768187 __assert_fail_base (/lib64/libc.so.6+0x2d187)
#6 0x7fccb1768232 (/lib64/libc.so.6+0x2d232)
#7 0x00848041 (/llvm/bin-3.8/bin/llc+0x848041)
#8 0x00667bd4 (/llvm/bin-3.8/bin/llc+0x667bd4)
#9 0x0064f855 llvm::X86TargetLowering::LowerOperation(llvm::SDValue,
llvm::SelectionDAG&) const (/llvm/bin-3.8/bin/llc+0x64f855)
#10 0x007fd767 (/llvm/bin-3.8/bin/llc+0x7fd767)
#11 0x007fcb47 llvm::SelectionDAG::Legalize()
(/llvm/bin-3.8/bin/llc+0x7fcb47)
#12 0x008cc250 llvm::SelectionDAGISel::CodeGenAndEmitDAG()
(/llvm/bin-3.8/bin/llc+0x8cc250)
#13 0x008cabe7
llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&)
(/llvm/bin-3.8/bin/llc+0x8cabe7)
#14 0x008c7bf6
llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&)
(/llvm/bin-3.8/bin/llc+0x8c7bf6)
#15 0x00606ba1 (/llvm/bin-3.8/bin/llc+0x606ba1)
#16 0x00a9cbf9
llvm::MachineFunctionPass::runOnFunction(llvm::Function&)
(/llvm/bin-3.8/bin/llc+0xa9cbf9)
#17 0x01032c64 llvm::FPPassManager::runOnFunction(llvm::Function&)
(/llvm/bin-3.8/bin/llc+0x1032c64)
#18 0x01032eab llvm::FPPassManager::runOnModule(llvm::Module&)
(/llvm/bin-3.8/bin/llc+0x1032eab)
#19 0x01033375 llvm::legacy::PassManagerImpl::run(llvm::Module&)
(/llvm/bin-3.8/bin/llc+0x1033375)
#20 0x0052db9d main (/llvm/bin-3.8/bin/llc+0x52db9d)
#21 0x7fccb175b700 __libc_start_main (/lib64/libc.so.6+0x20700)
#22 0x005279f9 _start (/llvm/bin-3.8/bin/llc+0x5279f9)
Stack dump:
0.  Program arguments: llc -mcpu=knl foo_gather.ll
1.  Running pass 'Function Pass Manager' on module 'foo_gather.ll'.
2.  Running pass 'X86 DAG->DAG Instruction Selection' on function '@f_f'
Aborted (core dumped)

-- 
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 19675] [x86-64 Itanium ABI] clang uses wrong return location for class with head padding

2016-01-27 Thread via llvm-bugs
https://llvm.org/bugs/show_bug.cgi?id=19675

Reid Kleckner  changed:

   What|Removed |Added

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

--- Comment #4 from Reid Kleckner  ---
GCC decided that their behavior is intentional, so I'd say this is working as
intended.

-- 
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 26339] New: TestCPPAuto.py fails on Windows

2016-01-27 Thread via llvm-bugs
https://llvm.org/bugs/show_bug.cgi?id=26339

Bug ID: 26339
   Summary: TestCPPAuto.py fails on Windows
   Product: lldb
   Version: unspecified
  Hardware: PC
OS: Windows NT
Status: NEW
  Severity: normal
  Priority: P
 Component: All Bugs
  Assignee: lldb-...@lists.llvm.org
  Reporter: amcca...@google.com
CC: llvm-bugs@lists.llvm.org
Classification: Unclassified

On Windows, expression commands like this:

  (lldb) expr struct Test { int x; int y; Test() : x(123), y(456) {} }; auto t
= Test(); t

result in:

  error: Can't run the expression locally: (null)

This requires more research to understand the root problem.

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


[llvm-bugs] [Bug 26340] New: Cuda device constant doesn't work

2016-01-27 Thread via llvm-bugs
https://llvm.org/bugs/show_bug.cgi?id=26340

Bug ID: 26340
   Summary: Cuda device constant doesn't work
   Product: clang
   Version: trunk
  Hardware: PC
OS: Linux
Status: NEW
  Severity: normal
  Priority: P
 Component: -New Bugs
  Assignee: unassignedclangb...@nondot.org
  Reporter: crtr...@sandia.gov
CC: llvm-bugs@lists.llvm.org
Classification: Unclassified

Created attachment 15729
  --> https://llvm.org/bugs/attachment.cgi?id=15729&action=edit
Reproduction code without extern symbols

It looks like cuda __device__ __symbols__ don't work. 
Effectively it looks like the host side functions such as cudaGetSymbolAddress
or cudaMemcpyToSymbol have an issue at link time, where it says something with
the same name as the cuda symbol is an undefined reference. The compilation it
self gets through. If you cheat the linker by adding another .o file with a
global host symbol of the same name the linking works, but at runtime the
aforementioned functions produce an error of invalid device symbol. 

I attach a reproduction example with build scripts for NVCC (which works) and
Clang. In the build script for clang you have to comment in the line with the
workaround c.cpp file.

I also attach a similar example, where a constant symbol is declared extern.
This requires compilation with -rdc true for NVCC. It fails right now for
similar reasons I assume as the first example, but I'd like to get that working
as well. I'll attach that later.

-- 
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 26341] New: Cuda __device__ lambda does not work

2016-01-27 Thread via llvm-bugs
https://llvm.org/bugs/show_bug.cgi?id=26341

Bug ID: 26341
   Summary: Cuda __device__ lambda does not work
   Product: clang
   Version: trunk
  Hardware: PC
OS: Linux
Status: NEW
  Severity: normal
  Priority: P
 Component: -New Bugs
  Assignee: unassignedclangb...@nondot.org
  Reporter: crtr...@sandia.gov
CC: llvm-bugs@lists.llvm.org
Classification: Unclassified

Created attachment 15731
  --> https://llvm.org/bugs/attachment.cgi?id=15731&action=edit
Reproduction code

This is an experimental feature in CUDA 7.5 and expected to be non experimental
in CUDA 8. The attached simple test code fails to compile. 

Code:
  run( [=] __device__ (int i) {
d_a[i] = d_c;
  });


Error:
main.cpp:23:12: error: lambda requires '()' before attribute specifier
  run( [=] __device__ (int i) {
   ^
   () 
/usr/local/cuda/include/host_defines.h:189:9: note: expanded from macro
'__device__'
__location__(device)
^
/usr/local/cuda/include/host_defines.h:88:9: note: expanded from macro
'__location__'
__annotate__(a)
^
/usr/local/cuda/include/host_defines.h:86:9: note: expanded from macro
'__annotate__'
__attribute__((a))
^
main.cpp:23:23: error: expected body of lambda expression
  run( [=] __device__ (int i) {
  ^
main.cpp:23:28: error: expected '(' for function-style cast or type
construction
  run( [=] __device__ (int i) {
   ~~~ ^
3 errors generated.


I actually like to see to be able to do __host__ __device__ (which does not
work with NVCC right now) so that you can dispatch the lambda to the host or to
the device. Effectively I just want the operator of the auto generated struct
to be marked __host__ __device__. I am responsible to only capture stuff which
is accesible on the device. Furthermore one might want to restrict a __device__
lambda to only capture by value. i.e. [=] __host__ __device__ (...) {...}

-- 
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 26342] New: clang segfault reported while compiling seastar

2016-01-27 Thread via llvm-bugs
https://llvm.org/bugs/show_bug.cgi?id=26342

Bug ID: 26342
   Summary: clang segfault reported while compiling seastar
   Product: clang
   Version: 3.7
  Hardware: PC
OS: Linux
Status: NEW
  Severity: normal
  Priority: P
 Component: Frontend
  Assignee: unassignedclangb...@nondot.org
  Reporter: erich.ke...@verizon.net
CC: llvm-bugs@lists.llvm.org
Classification: Unclassified

[ekeane1@ekeane1-desk1 seastar]$ clang++ --version
clang version 3.7.0 (tags/RELEASE_370/final)
Target: x86_64-redhat-linux-gnu
Thread model: posix

[32/124] CXX build/release/tests/rpc.o
FAILED: clang++ -MMD -MT build/release/tests/rpc.o -MF
build/release/tests/rpc.o.d -O2 -I build/release/gen -std=gnu++1y -g  -Wall
-Werror -fvisibility=hidden -pthread -I. -U_FORTIFY_SOURCE 
-Wno-mismatched-tags -Wno-pessimizing-move -Wno-redundant-move
-Wno-inconsistent-missing-override -Wno-unused-private-field
-Wno-unneeded-internal-declaration -DHAVE_HWLOC -DHAVE_NUMA -c -o
build/release/tests/rpc.o tests/rpc.cc
clang: error: unable to execute command: Segmentation fault (core dumped)
clang: error: clang frontend command failed due to signal (use -v to see
invocation)
clang version 3.7.0 (tags/RELEASE_370/final)
Target: x86_64-redhat-linux-gnu
Thread model: posix
clang: 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: note: diagnostic msg: 


PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang: note: diagnostic msg: /tmp/rpc-4337de.cpp
clang: note: diagnostic msg: /tmp/rpc-4337de.sh
clang: note: diagnostic msg: 


ninja: build stopped: subcommand failed.


Those files have been attached.

-- 
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 26343] New: Cuda: Relocatable device code doesn't work

2016-01-27 Thread via llvm-bugs
https://llvm.org/bugs/show_bug.cgi?id=26343

Bug ID: 26343
   Summary: Cuda: Relocatable device code doesn't work
   Product: clang
   Version: trunk
  Hardware: PC
OS: Linux
Status: NEW
  Severity: normal
  Priority: P
 Component: -New Bugs
  Assignee: unassignedclangb...@nondot.org
  Reporter: crtr...@sandia.gov
CC: llvm-bugs@lists.llvm.org
Classification: Unclassified

Created attachment 15733
  --> https://llvm.org/bugs/attachment.cgi?id=15733&action=edit
Reproduction code

With nvcc one can use the option "-rdc true", to allow device (or device host)
functions to be declared "extern". This means device functions can be compiled
in one compilation unit and called from others. This doesn't work here:

Error:
[crtrott@apollo test_relocatable_device_code]$ ./build_clang 
ptxas fatal   : Unresolved extern function '_Z4calcv'
fatal error: cannot open file '/tmp/main-b2a94f.fatbin': No such file or
directory
1 error generated.
clang-3.9: error: ptxas command failed with exit code 255 (use -v to see
invocation)
clang-3.9: error: no such file or directory: 'main.o'


Code:
extern int __device__ calc();

__global__ void foo(int* a) {
   a[blockIdx.x*blockDim.x+threadIdx.x] = calc();
}

-- 
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 26344] New: failure with unrolled loops which exit in the first iteration.

2016-01-27 Thread via llvm-bugs
https://llvm.org/bugs/show_bug.cgi?id=26344

Bug ID: 26344
   Summary: failure with unrolled loops which exit in the first
iteration.
   Product: clang
   Version: 3.7
  Hardware: Macintosh
OS: MacOS X
Status: NEW
  Severity: normal
  Priority: P
 Component: LLVM Codegen
  Assignee: unassignedclangb...@nondot.org
  Reporter: lo...@phantasia.org
CC: llvm-bugs@lists.llvm.org
Classification: Unclassified

System: OSX 10.10.5
Xcode 7.2
gcc --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr
--with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/c++/4.2.1
Apple LLVM version 7.0.2 (clang-700.1.81)
Target: x86_64-apple-darwin14.5.0
Thread model: posix

Having a loop, which might exit after the first iteration, the optimization
fails to produce correct code.

<---
#define FAIL 0x
#define rotate_left(v, n) (v << n | v >> (32 - n))

unsigned int
encode_arm_immediate (unsigned int val)
{
  unsigned int a, i;

  for (i = 0; i < 32 ; i += 2)
if((a = rotate_left (val, i)) <= 0xFF)
  return a | (i << 7) ; /* 12-bit pack: [shift-cnt,const].  */
   return FAIL;
}
<---
calling this with val = 0xFF the loop should exit within the first iteration
with 0xFF
if this code fragment gets compiled with 
clang -Wall -m32 -O2  test.c
or
clang -Wall -m64 -O2  test.c
the function will incorrectly return FAIL
looking at the assembler text generated on 
clang -Wall -S -O2  test.c
shows the following:
<---
_encode_arm_immediate:  ## @encode_arm_immediate
.cfi_startproc
## BB#0:
pushq   %rbp
Ltmp4:
.cfi_def_cfa_offset 16
Ltmp5:
.cfi_offset %rbp, -16
movq%rsp, %rbp
Ltmp6:
.cfi_def_cfa_register %rbp
movl%edi, %ecx
roll$2, %ecx
movl$256, %edx  ## imm = 0x100
cmpl$255, %ecx
jbe LBB1_1

LBB1_1:
orl %edx, %ecx
movl%ecx, %eax
LBB1_2: ## %.loopexit5
popq%rbp
retq
.cfi_endproc
<---
it seems the first iteration with i=0 has been omited which causes the loop to
begin with i=1.

I attached the testcase source and the 2 (32bit, 64bit) generated files

-- 
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 26344] failure with unrolled loops which exit in the first iteration.

2016-01-27 Thread via llvm-bugs
https://llvm.org/bugs/show_bug.cgi?id=26344

David Majnemer  changed:

   What|Removed |Added

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

--- Comment #5 from David Majnemer  ---
$ clang -fsanitize=undefined test.c -o test && ./test
test.c:11:13: runtime error: shift exponent 32 is too large for 32-bit type
'unsigned int'
0xA7 0xA7
0x1 0x1
0x0 0x0

line 11 has:
if((a = rotate_left (val, i)) <= 0xFF)

expands to:
if((a = (val << i | val >> (32 - i))) <= 0xFF)

when i == 0, we will compute:
if((a = (val << 0 | val >> (32 - 0))) <= 0xFF)

val >> 32 is undefined behavior.

-- 
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 26345] New: FAIL: cfi :: cross-dso/dlopen.cpp (27647 of 27652)

2016-01-27 Thread via llvm-bugs
https://llvm.org/bugs/show_bug.cgi?id=26345

Bug ID: 26345
   Summary: FAIL: cfi :: cross-dso/dlopen.cpp (27647 of 27652)
   Product: compiler-rt
   Version: unspecified
  Hardware: PC
OS: Linux
Status: NEW
  Severity: normal
  Priority: P
 Component: compiler-rt
  Assignee: unassignedb...@nondot.org
  Reporter: hjl.to...@gmail.com
CC: eugeni.stepa...@gmail.com, llvm-bugs@lists.llvm.org
Classification: Unclassified

On Fedora 23/x86-64, I got

FAIL: cfi :: cross-dso/dlopen.cpp (27647 of 27652)
 TEST 'cfi :: cross-dso/dlopen.cpp' FAILED

Script:
--
/export/build/gnu/llvm-clang/build-x86_64-linux/./bin/clang --driver-mode=g++
-fuse-ld=gold -flto -fsanitize=cfi -fsanitize-cfi-cross-dso -DSHARED_LIB
/export/gnu/import/git/llvm/projects/compiler-rt/test/cfi/cross-dso/dlopen.cpp
-fPIC -shared -o
/export/build/gnu/llvm-clang/build-x86_64-linux/projects/compiler-rt/test/cfi/cross-dso/Output/dlopen.cpp.tmp1-so.so
/export/build/gnu/llvm-clang/build-x86_64-linux/./bin/clang --driver-mode=g++
-fuse-ld=gold -flto -fsanitize=cfi -fsanitize-cfi-cross-dso
/export/gnu/import/git/llvm/projects/compiler-rt/test/cfi/cross-dso/dlopen.cpp
-o
/export/build/gnu/llvm-clang/build-x86_64-linux/projects/compiler-rt/test/cfi/cross-dso/Output/dlopen.cpp.tmp1
not --crash
/export/build/gnu/llvm-clang/build-x86_64-linux/projects/compiler-rt/test/cfi/cross-dso/Output/dlopen.cpp.tmp1
2>&1 | FileCheck --check-prefix=CFI
/export/gnu/import/git/llvm/projects/compiler-rt/test/cfi/cross-dso/dlopen.cpp
not --crash
/export/build/gnu/llvm-clang/build-x86_64-linux/projects/compiler-rt/test/cfi/cross-dso/Output/dlopen.cpp.tmp1
cast 2>&1 | FileCheck --check-prefix=CFI-CAST
/export/gnu/import/git/llvm/projects/compiler-rt/test/cfi/cross-dso/dlopen.cpp
not --crash
/export/build/gnu/llvm-clang/build-x86_64-linux/projects/compiler-rt/test/cfi/cross-dso/Output/dlopen.cpp.tmp1
dlclose 2>&1 | FileCheck --check-prefix=CFI
/export/gnu/import/git/llvm/projects/compiler-rt/test/cfi/cross-dso/dlopen.cpp
/export/build/gnu/llvm-clang/build-x86_64-linux/./bin/clang --driver-mode=g++
-fuse-ld=gold -flto -fsanitize=cfi -fsanitize-cfi-cross-dso -DB32 -DSHARED_LIB
/export/gnu/import/git/llvm/projects/compiler-rt/test/cfi/cross-dso/dlopen.cpp
-fPIC -shared -o
/export/build/gnu/llvm-clang/build-x86_64-linux/projects/compiler-rt/test/cfi/cross-dso/Output/dlopen.cpp.tmp2-so.so
/export/build/gnu/llvm-clang/build-x86_64-linux/./bin/clang --driver-mode=g++
-fuse-ld=gold -flto -fsanitize=cfi -fsanitize-cfi-cross-dso -DB32
/export/gnu/import/git/llvm/projects/compiler-rt/test/cfi/cross-dso/dlopen.cpp
-o
/export/build/gnu/llvm-clang/build-x86_64-linux/projects/compiler-rt/test/cfi/cross-dso/Output/dlopen.cpp.tmp2
not --crash
/export/build/gnu/llvm-clang/build-x86_64-linux/projects/compiler-rt/test/cfi/cross-dso/Output/dlopen.cpp.tmp2
2>&1 | FileCheck --check-prefix=CFI
/export/gnu/import/git/llvm/projects/compiler-rt/test/cfi/cross-dso/dlopen.cpp
not --crash
/export/build/gnu/llvm-clang/build-x86_64-linux/projects/compiler-rt/test/cfi/cross-dso/Output/dlopen.cpp.tmp2
cast 2>&1 | FileCheck --check-prefix=CFI-CAST
/export/gnu/import/git/llvm/projects/compiler-rt/test/cfi/cross-dso/dlopen.cpp
not --crash
/export/build/gnu/llvm-clang/build-x86_64-linux/projects/compiler-rt/test/cfi/cross-dso/Output/dlopen.cpp.tmp2
dlclose 2>&1 | FileCheck --check-prefix=CFI
/export/gnu/import/git/llvm/projects/compiler-rt/test/cfi/cross-dso/dlopen.cpp
/export/build/gnu/llvm-clang/build-x86_64-linux/./bin/clang --driver-mode=g++
-fuse-ld=gold -flto -fsanitize=cfi -fsanitize-cfi-cross-dso -DB64 -DSHARED_LIB
/export/gnu/import/git/llvm/projects/compiler-rt/test/cfi/cross-dso/dlopen.cpp
-fPIC -shared -o
/export/build/gnu/llvm-clang/build-x86_64-linux/projects/compiler-rt/test/cfi/cross-dso/Output/dlopen.cpp.tmp3-so.so
/export/build/gnu/llvm-clang/build-x86_64-linux/./bin/clang --driver-mode=g++
-fuse-ld=gold -flto -fsanitize=cfi -fsanitize-cfi-cross-dso -DB64
/export/gnu/import/git/llvm/projects/compiler-rt/test/cfi/cross-dso/dlopen.cpp
-o
/export/build/gnu/llvm-clang/build-x86_64-linux/projects/compiler-rt/test/cfi/cross-dso/Output/dlopen.cpp.tmp3
not --crash
/export/build/gnu/llvm-clang/build-x86_64-linux/projects/compiler-rt/test/cfi/cross-dso/Output/dlopen.cpp.tmp3
2>&1 | FileCheck --check-prefix=CFI
/export/gnu/import/git/llvm/projects/compiler-rt/test/cfi/cross-dso/dlopen.cpp
not --crash
/export/build/gnu/llvm-clang/build-x86_64-linux/projects/compiler-rt/test/cfi/cross-dso/Output/dlopen.cpp.tmp3
cast 2>&1 | FileCheck --check-prefix=CFI-CAST
/export/gnu/import/git/llvm/projects/compiler-rt/test/cfi/cross-dso/dlopen.cpp
not --crash
/export/build/gnu/llvm-clang/build-x86_64-linux/projects/compiler-rt/test/cfi/cross-dso/Output/dlopen.cpp.tmp3
dlclose 2>&1 | FileCheck --check-prefix=CFI
/export/gnu/import/git/llvm/projects/compiler-r

[llvm-bugs] [Bug 26346] New: IRLinker::stripNullSubprograms dominates the CPU profile

2016-01-27 Thread via llvm-bugs
https://llvm.org/bugs/show_bug.cgi?id=26346

Bug ID: 26346
   Summary: IRLinker::stripNullSubprograms dominates the CPU
profile
   Product: new-bugs
   Version: trunk
  Hardware: PC
OS: Linux
Status: NEW
  Severity: normal
  Priority: P
 Component: new bugs
  Assignee: unassignedb...@nondot.org
  Reporter: kra...@google.com
CC: llvm-bugs@lists.llvm.org
Classification: Unclassified

I regularly profile linking Chrome with CFI (Control Flow Integrity, ) and in
the last time I spotted something new in the CPU profile:

+  19.16%ld.gold  LLVMgold.so  [.] (anonymous
namespace)::IRLinker::stripNullSubprograms() [clone .isra.460]
+   4.41%ld.gold  libc-2.19.so [.] _int_malloc
+   4.21%ld.gold  [kernel.kallsyms][k] 0x8172c822
+   2.49%ld.gold  LLVMgold.so  [.]
llvm::NamedMDNode::getOperand(unsigned int) const
+   1.71%ld.gold  libc-2.19.so [.] malloc_consolidate
+   1.26%ld.gold  libc-2.19.so [.] _int_free
+   1.02%ld.gold  LLVMgold.so  [.]
llvm::Value::assertModuleIsMaterialized() const
+   1.02%ld.gold  LLVMgold.so  [.]
llvm::SelectionDAG::Combine(llvm::CombineLevel, llvm::AAResults&,
llvm::CodeGenOpt::Level)
+   0.94%ld.gold  LLVMgold.so  [.]
llvm::PMDataManager::findAnalysisPass(void const*, bool)
+   0.91%ld.gold  libc-2.19.so [.] memset
+   0.84%ld.gold  LLVMgold.so  [.]
llvm::SelectionDAGISel::SelectCodeCommon(llvm::SDNode*, unsigned char const*,
unsigned int)
+   0.77%ld.gold  LLVMgold.so  [.] llvm::sys::MemoryFence()
+   0.75%ld.gold  LLVMgold.so  [.]
llvm::SmallPtrSetImplBase::FindBucketFor(void const*) const
+   0.60%ld.gold  LLVMgold.so  [.]
llvm::ReplaceableMetadataImpl::get(llvm::Metadata&)
+   0.59%ld.gold  libc-2.19.so [.] malloc
+   0.56%ld.gold  LLVMgold.so  [.]
llvm::StringMapImpl::LookupBucketFor(llvm::StringRef)
+   0.53%ld.gold  LLVMgold.so  [.]
llvm::MCExpr::evaluateAsRelocatableImpl(llvm::MCValue&, llvm::MCAssembler
const*, llvm::MCAsmLayout const*, llvm::MCFixup const*,
llvm::DenseMap&, llvm::StringRef*)
+   0.50%ld.gold  LLVMgold.so  [.]
llvm::PMDataManager::removeNotPreservedAnalysis(llvm::Pass*)

stripNullSubprograms is fairly new (introduced in
http://reviews.llvm.org/rL256003) and based on the quick look could be made
faster / avoided alltogether (not 100% sure about the latter).

It would be nice to get rid of this unnecessary slowdown. It seems that the
performance is hit due to a lot of cache misses, which happens because
stripNullSubprograms accesses every single DISubprogram, and at this point this
data is not in L2 cache anymore. If this is done earlier, it could be 1
times faster (this is the ratio between findNeededSubprograms and
stripNullSubprograms).

-- 
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 26308] clang crashes on valid code at -O1 and above on x86_64-linux-gnu with no diagnostic msg (SimplifyCFG)

2016-01-27 Thread via llvm-bugs
https://llvm.org/bugs/show_bug.cgi?id=26308

Sanjay Patel  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED
Summary|clang crashes on valid code |clang crashes on valid code
   |at -O1 and above on |at -O1 and above on
   |x86_64-linux-gnu with no|x86_64-linux-gnu with no
   |diagnostic msg  |diagnostic msg
   ||(SimplifyCFG)

--- Comment #7 from Sanjay Patel  ---
Marking as fixed since we shouldn't crash after:
http://reviews.llvm.org/rL258971

...but as noted by Daniel Berlin and David, we can do better than using a
recursion limit to prevent this bug.

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


[llvm-bugs] [Bug 26347] New: clang crashes on valid code (with packed struct) at -Os and above on x86_64-linux-gnu (in 32-bit mode)

2016-01-27 Thread via llvm-bugs
nstance::ExecuteAction(clang::FrontendAction&)
(/usr/local/clang-trunk/bin/clang+0xab5eb6)
#27 0x00a98fc3
clang::ExecuteCompilerInvocation(clang::CompilerInstance*)
(/usr/local/clang-trunk/bin/clang+0xa98fc3)
#28 0x00a902d0 cc1_main(llvm::ArrayRef, char const*,
void*) (/usr/local/clang-trunk/bin/clang+0xa902d0)
#29 0x00a516ed main (/usr/local/clang-trunk/bin/clang+0xa516ed)
#30 0x7f5cea23dec5 __libc_start_main
/build/buildd/eglibc-2.19/csu/libc-start.c:321:0
#31 0x00a8ecf8 _start (/usr/local/clang-trunk/bin/clang+0xa8ecf8)
Stack dump:
0.Program arguments: /usr/local/clang-trunk/bin/clang -cc1 -triple
i386-unknown-linux-gnu -emit-obj -disable-free -main-file-name small.c
-mrelocation-model static -mthread-model posix -fmath-errno -masm-verbose
-mconstructor-aliases -fuse-init-array -target-cpu pentium4
-target-linker-version 2.24 -momit-leaf-frame-pointer -dwarf-column-info
-debugger-tuning=gdb -resource-dir
/usr/local/clang-trunk/bin/../lib/clang/3.9.0 -internal-isystem
/usr/local/include -internal-isystem
/usr/local/clang-trunk/bin/../lib/clang/3.9.0/include -internal-externc-isystem
/include -internal-externc-isystem /usr/include -Os -fdebug-compilation-dir
/home/su/20160127-clang-trunk-m64-Os-build-084902 -ferror-limit 19
-fmessage-length 88 -fobjc-runtime=gcc -fdiagnostics-show-option
-fcolor-diagnostics -vectorize-loops -vectorize-slp -o /tmp/small-5368dd.o -x c
small.c 
1. parser at end of file
2.Per-module optimization passes
3.Running pass 'Function Pass Manager' on module 'small.c'.
4.Running pass 'Combine redundant instructions' on function '@fn1'
clang: error: unable to execute command: Aborted (core dumped)
clang: error: clang frontend command failed due to signal (use -v to see
invocation)
clang version 3.9.0 (trunk 258783)
Target: i386-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/local/bin
clang: 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: note: diagnostic msg: 


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


$ 
$ 


--


int printf (const char *, ...);

#pragma pack(1)
struct S
{
  int f0:29;
  int f1:26;
  int:13;
};

int a;

void
fn1 ()
{
  struct S b;
  for (; a;)
{
  int c = b.f0 - b.f1;
  int d = a = a + c;
  printf ("0");
  b.f1 = d;
  b.f0 = c;
}
}

int
main ()
{
  fn1 (); 
  return 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 26348] New: 3.8 AArch64 support for half floats

2016-01-27 Thread via llvm-bugs
https://llvm.org/bugs/show_bug.cgi?id=26348

Bug ID: 26348
   Summary: 3.8 AArch64 support for half floats
   Product: tools
   Version: 3.8
  Hardware: PC
OS: Windows NT
Status: NEW
  Severity: normal
  Priority: P
 Component: llc
  Assignee: unassignedb...@nondot.org
  Reporter: apa...@codeaurora.org
CC: llvm-bugs@lists.llvm.org
Classification: Unclassified

Branch 3.7 had broken support for half floats. Since then there have been
several patches in mainline that improved it. But branch 3.8 seems to be
missing at least one of the latest fixes (what I could detect in my
validations).

For example the test below will crash in branch 3.8, but passes in the tip.

There is one commit that could be brought to branch 3.8 to resolve this crash I
suggest we pick it.

@258471 - Do not lower VSETCC if operand is an f16 vector

target datalayout = "e-m:e-i64:64-i128:128-n32:64-S128"
target triple = "aarch64-none-linux-android"

@.str28 = external unnamed_addr constant [94 x i8], align 1
@.str29 = external unnamed_addr constant [84 x i8], align 1

; Function Attrs: nounwind
define i16 @test() {
  %1 = call <4 x i16> @llvm.aarch64.neon.vcvtfp2hf(<4 x float> undef)
  %2 = bitcast <4 x i16> %1 to <4 x half>
  %3 = shufflevector <4 x half> %2, <4 x half> undef, <8 x i32> 
  %4 = fcmp une <8 x half> zeroinitializer, %3
  %5 = sext <8 x i1> %4 to <8 x i16>
  %6 = extractelement <8 x i16> %5, i64 undef
  ret i16  %6
}

declare <4 x i16> @llvm.aarch64.neon.vcvtfp2hf(<4 x float>)


llc test.ll

llc:
/prj/llvm-arm/home/nightly/src/community-38/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:6693:
llvm::SDValue llvm::AArch64TargetLowering::LowerVSETCC(llvm::SDValue,
llvm::SelectionDAG &) const: Assertion
`LHS.getValueType().getVectorElementType() == MVT::f32 ||
LHS.getValueType().getVectorElementType() == MVT::f64' failed.
#0 0x010c68d8 llvm::sys::PrintStackTrace(llvm::raw_ostream&)
(/prj/llvm-arm/home/nightly/install/community-38/cross/2016-01-27/bin/llc+0x10c68d8)
#1 0x010c4de6 llvm::sys::RunSignalHandlers()
(/prj/llvm-arm/home/nightly/install/community-38/cross/2016-01-27/bin/llc+0x10c4de6)
#2 0x010c70f9 SignalHandler(int)
(/prj/llvm-arm/home/nightly/install/community-38/cross/2016-01-27/bin/llc+0x10c70f9)
#3 0x7fbbe6b24cb0 __restore_rt
(/lib/x86_64-linux-gnu/libpthread.so.0+0xfcb0)
#4 0x7fbbe5e670d5 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x360d5)
#5 0x7fbbe5e6a83b abort (/lib/x86_64-linux-gnu/libc.so.6+0x3983b)
#6 0x7fbbe5e5fd9e (/lib/x86_64-linux-gnu/libc.so.6+0x2ed9e)
#7 0x7fbbe5e5fe42 (/lib/x86_64-linux-gnu/libc.so.6+0x2ee42)
#8 0x00764545
(/prj/llvm-arm/home/nightly/install/community-38/cross/2016-01-27/bin/llc+0x764545)
#9 0x0074052e llvm::AArch64TargetLowering::LowerSETCC(llvm::SDValue,
llvm::SelectionDAG&) const
(/prj/llvm-arm/home/nightly/install/community-38/cross/2016-01-27/bin/llc+0x74052e)
#10 0x0073f54f
llvm::AArch64TargetLowering::LowerOperation(llvm::SDValue, llvm::SelectionDAG&)
const
(/prj/llvm-arm/home/nightly/install/community-38/cross/2016-01-27/bin/llc+0x73f54f)
#11 0x00fc821f (anonymous
namespace)::VectorLegalizer::LegalizeOp(llvm::SDValue)
(/prj/llvm-arm/home/nightly/install/community-38/cross/2016-01-27/bin/llc+0xfc821f)
#12 0x00fc763d llvm::SelectionDAG::LegalizeVectors()
(/prj/llvm-arm/home/nightly/install/community-38/cross/2016-01-27/bin/llc+0xfc763d)
#13 0x00f7a2ec llvm::SelectionDAGISel::CodeGenAndEmitDAG()
(/prj/llvm-arm/home/nightly/install/community-38/cross/2016-01-27/bin/llc+0xf7a2ec)
#14 0x00f792e2
llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&)
(/prj/llvm-arm/home/nightly/install/community-38/cross/2016-01-27/bin/llc+0xf792e2)
#15 0x00f769f7
llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&)
(/prj/llvm-arm/home/nightly/install/community-38/cross/2016-01-27/bin/llc+0xf769f7)
#16 0x00a443bc
llvm::MachineFunctionPass::runOnFunction(llvm::Function&)
(/prj/llvm-arm/home/nightly/install/community-38/cross/2016-01-27/bin/llc+0xa443bc)
#17 0x00cfee2d llvm::FPPassManager::runOnFunction(llvm::Function&)
(/prj/llvm-arm/home/nightly/install/community-38/cross/2016-01-27/bin/llc+0xcfee2d)
#18 0x00cff07b llvm::FPPassManager::runOnModule(llvm::Module&)
(/prj/llvm-arm/home/nightly/install/community-38/cross/2016-01-27/bin/llc+0xcff07b)
#19 0x00cff622 llvm::legacy::PassManagerImpl::run(llvm::Module&)
(/prj/llvm-arm/home/nightly/install/community-38/cross/2016-01-27/bin/llc+0xcff622)
#20 0x0054f5bf compileModule(char**, llvm::LLVMContext&)
(/prj/llvm-arm/home/nightly/install/community-38/cross/2016-01-27/bin/llc+0x54f5bf)
#21 0x0054c6ab main
(/prj/llvm-arm/home/nightly/install/community-38/cross/2016-01-27/bin/llc+0x54c6ab)
#22 0x7fbbe5e5276d __libc_start_main
(/lib/x86_64-linux-

[llvm-bugs] [Bug 26349] New: Digit separators as only characters in significand or exponent of floating point constants can trigger assertions

2016-01-27 Thread via llvm-bugs
https://llvm.org/bugs/show_bug.cgi?id=26349

Bug ID: 26349
   Summary: Digit separators as only characters in significand or
exponent of floating point constants can trigger
assertions
   Product: clang
   Version: trunk
  Hardware: All
OS: All
Status: NEW
  Severity: normal
  Priority: P
 Component: C++14
  Assignee: unassignedclangb...@nondot.org
  Reporter: craig.top...@gmail.com
CC: llvm-bugs@lists.llvm.org
Classification: Unclassified

The following literals trick NumericLiteralParser into believing that they have
an exponent or significand when they don't. Later when GetFloatValue tries to
process them the empty exponent or significand is detected and triggers an
assertion.

They also diagnose the digit separator as being both at the start and end of a
digit sequence.

float f = 0x.'p1f;
float g = 0e'f;

This one doesn't trigger an assertion, but isn't diagnosed as an empty exponent
either.

float h = 0x0p'f;

-- 
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 26347] clang crashes on valid code (with packed struct) at -Os and above on x86_64-linux-gnu (in 32-bit mode)

2016-01-27 Thread via llvm-bugs
https://llvm.org/bugs/show_bug.cgi?id=26347

David Majnemer  changed:

   What|Removed |Added

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

--- Comment #1 from David Majnemer  ---


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

-- 
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 26350] New: wrong code on x86_64-linux-gnu at -O1 and above in 32-bit mode

2016-01-27 Thread via llvm-bugs
https://llvm.org/bugs/show_bug.cgi?id=26350

Bug ID: 26350
   Summary: wrong code on x86_64-linux-gnu at -O1 and above in
32-bit mode
   Product: clang
   Version: trunk
  Hardware: PC
OS: Windows NT
Status: NEW
  Severity: normal
  Priority: P
 Component: -New Bugs
  Assignee: unassignedclangb...@nondot.org
  Reporter: chengnian...@gmail.com
CC: llvm-bugs@lists.llvm.org
Classification: Unclassified

The following code is miscompiled by the trunk in 32-bit mode at -O1 and above.
It also affects clang-3.2 and later versions.

The compiled executable non-deterministically outputs "l_1845=0".

$: clang-trunk  -v
clang version 3.9.0 (trunk 258824) (llvm/trunk 258823)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/local/bin
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/4.9
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/4.9.3
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/5.3.0
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.4
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.4.7
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.6
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.6.4
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.7
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.7.3
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.8
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.8.4
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.9
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.9.3
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/5.3.0
Found candidate GCC installation:
/usr/local/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.6.3
Found candidate GCC installation:
/usr/local/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.7.4
Found candidate GCC installation:
/usr/local/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.8.2
Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.9
Candidate multilib: .;@m64
Candidate multilib: 32;@m32
Candidate multilib: x32;@mx32
Selected multilib: .;@m64
$: 
$: clang-trunk -w -m32 -O0 small.c 
$: (for i in {1..1000} ; do ./a.out ; done) | wc -l
1000
$: clang-trunk -w -m32 -O1 small.c 
$: (for i in {1..1000} ; do ./a.out ; done) | wc -l
474
$: clang-trunk -w -m32 -O2 small.c 
$: (for i in {1..1000} ; do ./a.out ; done) | wc -l
502
$: clang-trunk -w -m32 -O3 small.c 
$: (for i in {1..1000} ; do ./a.out ; done) | wc -l
516
$: 
$: cat small.c
int printf(const char*, ...);
volatile char a, h;
long long b;
int d;
long long fn1_p;
int main() {
  unsigned j = 9, m;
  int k = -1L, o;
  long long n = -1L;
  o = m = ~fn1_p;
  b = -(-n ^ (j | d)) * ~ - k;
  if (m > b)
printf("l_1845=%llu\n", (long long)h);
  o || a;
  return 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 26331] __attribute__((init_priority)) does not work accross multiple translation units

2016-01-27 Thread via llvm-bugs
https://llvm.org/bugs/show_bug.cgi?id=26331

Anton Korobeynikov  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||an...@korobeynikov.info
 Resolution|--- |WONTFIX

--- Comment #1 from Anton Korobeynikov  ---
This is expected. The constructors on Darwin are ordered by their .o link
order.

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