Merge pull request #2787 from alihanozturk/master
fltk:add x-fluid.desktop revert llvm llvm:rebuild jbigkit:fix make
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
[Desktop Entry]
|
||||
Type=MimeType
|
||||
MimeType=application/x-fluid
|
||||
Icon=fluid.png
|
||||
Patterns=*.fl
|
||||
Name=FLUID
|
||||
Comment=FLUID GUI Design
|
||||
Encoding=UTF-8
|
||||
@@ -13,6 +13,9 @@
|
||||
<Summary>FLTK (pronounced "fulltick") is a cross-platform C++ GUI toolkit</Summary>
|
||||
<Description>FLTK provides modern GUI functionality without the bloat and supports 3D graphics via OpenGL and its built-in GLUT emulation. FLTK is designed to be small and modular enough to be statically linked, but works fine as a shared library. FLTK also includes an excellent UI builder called FLUID that can be used to create applications in minutes.</Description>
|
||||
<Archive sha1sum="0a2a40e34094b9758dc8552ffb32ae444bce8577" type="targz">http://fltk.org/pub/fltk/1.3.4/fltk-1.3.4-1-source.tar.gz</Archive>
|
||||
<AdditionalFiles>
|
||||
<AdditionalFile owner="root" permission="0644" target="fluid/x-fluid.desktop">x-fluid.desktop</AdditionalFile>
|
||||
</AdditionalFiles>
|
||||
<BuildDependencies>
|
||||
<Dependency>zlib-devel</Dependency>
|
||||
<Dependency>libX11-devel</Dependency>
|
||||
|
||||
@@ -13,7 +13,7 @@ def build():
|
||||
|
||||
def check():
|
||||
autotools.make("-j1 test")
|
||||
|
||||
|
||||
def install():
|
||||
pisitools.insinto("/usr/include/", "libjbig/jbig*.h")
|
||||
pisitools.insinto("/usr/lib/", "libjbig/libjbig*.so")
|
||||
|
||||
@@ -33,8 +33,6 @@ def setup():
|
||||
shelltools.export("CC", "gcc")
|
||||
shelltools.export("CXX", "g++")
|
||||
|
||||
shelltools.system("patch -Np0 -d projects/compiler-rt < msan-prevent-initialization-failure-with-newer-glibc.patch")
|
||||
shelltools.system("patch -Rp1 -i AMDGPU-Fix-an-interaction-between-WQM-and-polygon-stippling.patch")
|
||||
|
||||
if get.buildTYPE() == "emul32":
|
||||
shelltools.export("CC", "gcc -m32")
|
||||
@@ -64,15 +62,14 @@ def setup():
|
||||
|
||||
cmaketools.configure("-DCMAKE_BUILD_TYPE=Release \
|
||||
%s \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||
-DLLVM_ENABLE_FFI=ON \
|
||||
-DLLVM_LINK_LLVM_DYLIB=ON \
|
||||
-DLLVM_BUILD_LLVM_DYLIB=ON \
|
||||
-DLLDB_DISABLE_LIBEDIT=1 \
|
||||
-DLLVM_INCLUDEDIR=/usr/include \
|
||||
-DLLVM_ENABLE_FFI=ON \
|
||||
-DLLVM_BUILD_DOCS=OFF \
|
||||
-DBUILD_SHARED_LIBS=ON \
|
||||
-DLLVM_ENABLE_RTTI=ON \
|
||||
-DLLVM_INCLUDEDIR=/usr/include \
|
||||
-DLLVM_ENABLE_ASSERTIONS=OFF \
|
||||
-DFFI_INCLUDE_DIR=/usr/lib/libffi-3.2.1/include \
|
||||
-DLLVM_TARGETS_TO_BUILD='host;AMDGPU'" % options, sourceDir=".." )
|
||||
-DENABLE_SHARED=ON" % options, sourceDir=".." )
|
||||
|
||||
def build():
|
||||
shelltools.makedirs("build")
|
||||
@@ -88,11 +85,11 @@ def install():
|
||||
|
||||
if get.buildTYPE() == "emul32":
|
||||
|
||||
#pisitools.domove("/emul32/lib32/", "/usr/")
|
||||
pisitools.insinto("/usr/include/llvm/Config/","%s/usr/include/llvm/Config/llvm-config.h" % get.installDIR(),"llvm-config-32.h")
|
||||
pisitools.insinto("/usr/bin/","%s/usr/bin/llvm-config" % get.installDIR(),"llvm-config-32")
|
||||
#pisitools.removeDir("/emul32")
|
||||
pisitools.domove("/emul32/lib32/", "/usr/")
|
||||
pisitools.insinto("/usr/include/llvm/Config/","%s/emul32/include/llvm/Config/llvm-config.h" % get.installDIR(),"llvm-config-32.h")
|
||||
pisitools.insinto("/usr/bin/","%s/emul32/bin/llvm-config" % get.installDIR(),"llvm-config-32")
|
||||
pisitools.removeDir("/emul32")
|
||||
|
||||
shelltools.cd ("..")
|
||||
|
||||
pisitools.dodoc("CREDITS.TXT", "LICENSE.TXT", "README.txt")
|
||||
pisitools.dodoc("CREDITS.TXT", "LICENSE.TXT", "README.txt")
|
||||
|
||||
-140
@@ -1,140 +0,0 @@
|
||||
From 25e2616626caafb896517e18cd8aa724fba2b200 Mon Sep 17 00:00:00 2001
|
||||
From: Tom Stellard <thomas.stellard@amd.com>
|
||||
Date: Tue, 29 Nov 2016 03:41:28 +0000
|
||||
Subject: [PATCH] Merging r280589:
|
||||
|
||||
------------------------------------------------------------------------
|
||||
r280589 | nhaehnle | 2016-09-03 05:26:32 -0700 (Sat, 03 Sep 2016) | 19 lines
|
||||
|
||||
AMDGPU: Fix an interaction between WQM and polygon stippling
|
||||
|
||||
Summary:
|
||||
This fixes a rare bug in polygon stippling with non-monolithic pixel shaders.
|
||||
|
||||
The underlying problem is as follows: the prolog part contains the polygon
|
||||
stippling sequence, i.e. a kill. The main part then enables WQM based on the
|
||||
_reduced_ exec mask, effectively undoing most of the polygon stippling.
|
||||
|
||||
Since we cannot know whether polygon stippling will be used, the main part
|
||||
of a non-monolithic shader must always return to exact mode to fix this
|
||||
problem.
|
||||
|
||||
Reviewers: arsenm, tstellarAMD, mareko
|
||||
|
||||
Subscribers: arsenm, llvm-commits, kzhuravl
|
||||
|
||||
Differential Revision: https://reviews.llvm.org/D23131
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_39@288105 91177308-0d34-0410-b5e6-96231b3b80d8
|
||||
---
|
||||
lib/Target/AMDGPU/SIInstructions.td | 1 +
|
||||
lib/Target/AMDGPU/SIWholeQuadMode.cpp | 7 -----
|
||||
test/CodeGen/AMDGPU/wqm.ll | 49 ++++++++++++++++++++++++++++++++---
|
||||
3 files changed, 46 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/lib/Target/AMDGPU/SIInstructions.td b/lib/Target/AMDGPU/SIInstructions.td
|
||||
index 18b7d5d..dde5f2f 100644
|
||||
--- a/lib/Target/AMDGPU/SIInstructions.td
|
||||
+++ b/lib/Target/AMDGPU/SIInstructions.td
|
||||
@@ -2029,6 +2029,7 @@ def SI_RETURN : PseudoInstSI <
|
||||
let hasSideEffects = 1;
|
||||
let SALU = 1;
|
||||
let hasNoSchedulingInfo = 1;
|
||||
+ let DisableWQM = 1;
|
||||
}
|
||||
|
||||
let Uses = [EXEC], Defs = [EXEC, VCC, M0],
|
||||
diff --git a/lib/Target/AMDGPU/SIWholeQuadMode.cpp b/lib/Target/AMDGPU/SIWholeQuadMode.cpp
|
||||
index b200c15..1534d58 100644
|
||||
--- a/lib/Target/AMDGPU/SIWholeQuadMode.cpp
|
||||
+++ b/lib/Target/AMDGPU/SIWholeQuadMode.cpp
|
||||
@@ -219,13 +219,6 @@ char SIWholeQuadMode::scanInstructions(MachineFunction &MF,
|
||||
markInstruction(MI, Flags, Worklist);
|
||||
GlobalFlags |= Flags;
|
||||
}
|
||||
-
|
||||
- if (WQMOutputs && MBB.succ_empty()) {
|
||||
- // This is a prolog shader. Make sure we go back to exact mode at the end.
|
||||
- Blocks[&MBB].OutNeeds = StateExact;
|
||||
- Worklist.push_back(&MBB);
|
||||
- GlobalFlags |= StateExact;
|
||||
- }
|
||||
}
|
||||
|
||||
return GlobalFlags;
|
||||
diff --git a/test/CodeGen/AMDGPU/wqm.ll b/test/CodeGen/AMDGPU/wqm.ll
|
||||
index 809a7ba..41e4264 100644
|
||||
--- a/test/CodeGen/AMDGPU/wqm.ll
|
||||
+++ b/test/CodeGen/AMDGPU/wqm.ll
|
||||
@@ -17,17 +17,18 @@ main_body:
|
||||
;CHECK-LABEL: {{^}}test2:
|
||||
;CHECK-NEXT: ; %main_body
|
||||
;CHECK-NEXT: s_wqm_b64 exec, exec
|
||||
-;CHECK: image_sample
|
||||
;CHECK-NOT: exec
|
||||
-;CHECK: _load_dword v0,
|
||||
-define amdgpu_ps float @test2(<8 x i32> inreg %rsrc, <4 x i32> inreg %sampler, float addrspace(1)* inreg %ptr, <4 x i32> %c) {
|
||||
+define amdgpu_ps void @test2(<8 x i32> inreg %rsrc, <4 x i32> inreg %sampler, float addrspace(1)* inreg %ptr, <4 x i32> %c) {
|
||||
main_body:
|
||||
%c.1 = call <4 x float> @llvm.SI.image.sample.v4i32(<4 x i32> %c, <8 x i32> %rsrc, <4 x i32> %sampler, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0)
|
||||
%c.2 = bitcast <4 x float> %c.1 to <4 x i32>
|
||||
%c.3 = extractelement <4 x i32> %c.2, i32 0
|
||||
%gep = getelementptr float, float addrspace(1)* %ptr, i32 %c.3
|
||||
%data = load float, float addrspace(1)* %gep
|
||||
- ret float %data
|
||||
+
|
||||
+ call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %data, float undef, float undef, float undef)
|
||||
+
|
||||
+ ret void
|
||||
}
|
||||
|
||||
; ... but disabled for stores (and, in this simple case, not re-enabled).
|
||||
@@ -414,6 +415,46 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
+; Must return to exact at the end of a non-void returning shader,
|
||||
+; otherwise the EXEC mask exported by the epilog will be wrong. This is true
|
||||
+; even if the shader has no kills, because a kill could have happened in a
|
||||
+; previous shader fragment.
|
||||
+;
|
||||
+; CHECK-LABEL: {{^}}test_nonvoid_return:
|
||||
+; CHECK: s_mov_b64 [[LIVE:s\[[0-9]+:[0-9]+\]]], exec
|
||||
+; CHECK: s_wqm_b64 exec, exec
|
||||
+;
|
||||
+; CHECK: s_and_b64 exec, exec, [[LIVE]]
|
||||
+; CHECK-NOT: exec
|
||||
+define amdgpu_ps <4 x float> @test_nonvoid_return() nounwind {
|
||||
+ %tex = call <4 x float> @llvm.SI.image.sample.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0)
|
||||
+ %tex.i = bitcast <4 x float> %tex to <4 x i32>
|
||||
+ %dtex = call <4 x float> @llvm.SI.image.sample.v4i32(<4 x i32> %tex.i, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0)
|
||||
+ ret <4 x float> %dtex
|
||||
+}
|
||||
+
|
||||
+; CHECK-LABEL: {{^}}test_nonvoid_return_unreachable:
|
||||
+; CHECK: s_mov_b64 [[LIVE:s\[[0-9]+:[0-9]+\]]], exec
|
||||
+; CHECK: s_wqm_b64 exec, exec
|
||||
+;
|
||||
+; CHECK: s_and_b64 exec, exec, [[LIVE]]
|
||||
+; CHECK-NOT: exec
|
||||
+define amdgpu_ps <4 x float> @test_nonvoid_return_unreachable(i32 inreg %c) nounwind {
|
||||
+entry:
|
||||
+ %tex = call <4 x float> @llvm.SI.image.sample.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0)
|
||||
+ %tex.i = bitcast <4 x float> %tex to <4 x i32>
|
||||
+ %dtex = call <4 x float> @llvm.SI.image.sample.v4i32(<4 x i32> %tex.i, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0)
|
||||
+
|
||||
+ %cc = icmp sgt i32 %c, 0
|
||||
+ br i1 %cc, label %if, label %else
|
||||
+
|
||||
+if:
|
||||
+ store volatile <4 x float> %dtex, <4 x float>* undef
|
||||
+ unreachable
|
||||
+
|
||||
+else:
|
||||
+ ret <4 x float> %dtex
|
||||
+}
|
||||
|
||||
declare void @llvm.amdgcn.image.store.v4i32(<4 x float>, <4 x i32>, <8 x i32>, i32, i1, i1, i1, i1) #1
|
||||
declare void @llvm.amdgcn.buffer.store.f32(float, <4 x i32>, i32, i32, i1, i1) #1
|
||||
-103
@@ -1,103 +0,0 @@
|
||||
Index: lib/msan/msan_interceptors.cc
|
||||
===================================================================
|
||||
--- lib/msan/msan_interceptors.cc (revision 282231)
|
||||
+++ lib/msan/msan_interceptors.cc (revision 282232)
|
||||
@@ -64,6 +64,23 @@
|
||||
return in_interceptor_scope;
|
||||
}
|
||||
|
||||
+static uptr allocated_for_dlsym;
|
||||
+static const uptr kDlsymAllocPoolSize = 1024;
|
||||
+static uptr alloc_memory_for_dlsym[kDlsymAllocPoolSize];
|
||||
+
|
||||
+static bool IsInDlsymAllocPool(const void *ptr) {
|
||||
+ uptr off = (uptr)ptr - (uptr)alloc_memory_for_dlsym;
|
||||
+ return off < sizeof(alloc_memory_for_dlsym);
|
||||
+}
|
||||
+
|
||||
+static void *AllocateFromLocalPool(uptr size_in_bytes) {
|
||||
+ uptr size_in_words = RoundUpTo(size_in_bytes, kWordSize) / kWordSize;
|
||||
+ void *mem = (void *)&alloc_memory_for_dlsym[allocated_for_dlsym];
|
||||
+ allocated_for_dlsym += size_in_words;
|
||||
+ CHECK_LT(allocated_for_dlsym, kDlsymAllocPoolSize);
|
||||
+ return mem;
|
||||
+}
|
||||
+
|
||||
#define ENSURE_MSAN_INITED() do { \
|
||||
CHECK(!msan_init_is_running); \
|
||||
if (!msan_inited) { \
|
||||
@@ -227,7 +244,7 @@
|
||||
|
||||
INTERCEPTOR(void, free, void *ptr) {
|
||||
GET_MALLOC_STACK_TRACE;
|
||||
- if (!ptr) return;
|
||||
+ if (!ptr || UNLIKELY(IsInDlsymAllocPool(ptr))) return;
|
||||
MsanDeallocate(&stack, ptr);
|
||||
}
|
||||
|
||||
@@ -234,7 +251,7 @@
|
||||
#if !SANITIZER_FREEBSD
|
||||
INTERCEPTOR(void, cfree, void *ptr) {
|
||||
GET_MALLOC_STACK_TRACE;
|
||||
- if (!ptr) return;
|
||||
+ if (!ptr || UNLIKELY(IsInDlsymAllocPool(ptr))) return;
|
||||
MsanDeallocate(&stack, ptr);
|
||||
}
|
||||
#define MSAN_MAYBE_INTERCEPT_CFREE INTERCEPT_FUNCTION(cfree)
|
||||
@@ -907,27 +924,29 @@
|
||||
|
||||
INTERCEPTOR(void *, calloc, SIZE_T nmemb, SIZE_T size) {
|
||||
GET_MALLOC_STACK_TRACE;
|
||||
- if (UNLIKELY(!msan_inited)) {
|
||||
+ if (UNLIKELY(!msan_inited))
|
||||
// Hack: dlsym calls calloc before REAL(calloc) is retrieved from dlsym.
|
||||
- const SIZE_T kCallocPoolSize = 1024;
|
||||
- static uptr calloc_memory_for_dlsym[kCallocPoolSize];
|
||||
- static SIZE_T allocated;
|
||||
- SIZE_T size_in_words = ((nmemb * size) + kWordSize - 1) / kWordSize;
|
||||
- void *mem = (void*)&calloc_memory_for_dlsym[allocated];
|
||||
- allocated += size_in_words;
|
||||
- CHECK(allocated < kCallocPoolSize);
|
||||
- return mem;
|
||||
- }
|
||||
+ return AllocateFromLocalPool(nmemb * size);
|
||||
return MsanCalloc(&stack, nmemb, size);
|
||||
}
|
||||
|
||||
INTERCEPTOR(void *, realloc, void *ptr, SIZE_T size) {
|
||||
GET_MALLOC_STACK_TRACE;
|
||||
+ if (UNLIKELY(IsInDlsymAllocPool(ptr))) {
|
||||
+ uptr offset = (uptr)ptr - (uptr)alloc_memory_for_dlsym;
|
||||
+ uptr copy_size = Min(size, kDlsymAllocPoolSize - offset);
|
||||
+ void *new_ptr = AllocateFromLocalPool(size);
|
||||
+ internal_memcpy(new_ptr, ptr, copy_size);
|
||||
+ return new_ptr;
|
||||
+ }
|
||||
return MsanReallocate(&stack, ptr, size, sizeof(u64), false);
|
||||
}
|
||||
|
||||
INTERCEPTOR(void *, malloc, SIZE_T size) {
|
||||
GET_MALLOC_STACK_TRACE;
|
||||
+ if (UNLIKELY(!msan_inited))
|
||||
+ // Hack: dlsym calls malloc before REAL(malloc) is retrieved from dlsym.
|
||||
+ return AllocateFromLocalPool(size);
|
||||
return MsanReallocate(&stack, nullptr, size, sizeof(u64), false);
|
||||
}
|
||||
|
||||
Index: lib/asan/asan_malloc_linux.cc
|
||||
===================================================================
|
||||
--- lib/asan/asan_malloc_linux.cc (revision 282231)
|
||||
+++ lib/asan/asan_malloc_linux.cc (revision 282232)
|
||||
@@ -78,7 +78,11 @@
|
||||
if (UNLIKELY(IsInDlsymAllocPool(ptr))) {
|
||||
uptr offset = (uptr)ptr - (uptr)alloc_memory_for_dlsym;
|
||||
uptr copy_size = Min(size, kDlsymAllocPoolSize - offset);
|
||||
- void *new_ptr = asan_malloc(size, &stack);
|
||||
+ void *new_ptr;
|
||||
+ if (UNLIKELY(!asan_inited))
|
||||
+ new_ptr = AllocateFromLocalPool(size);
|
||||
+ else
|
||||
+ new_ptr = asan_malloc(size, &stack);
|
||||
internal_memcpy(new_ptr, ptr, copy_size);
|
||||
return new_ptr;
|
||||
}
|
||||
@@ -11,15 +11,11 @@
|
||||
<License>NCSA</License>
|
||||
<Summary>The Low Level Virtual Machine</Summary>
|
||||
<Description>The LLVM Project is a collection of modular and reusable compiler and toolchain technologies. Despite its name, LLVM has little to do with traditional virtual machines, though it does provide helpful libraries that can be used to build them.</Description>
|
||||
<Archive sha1sum="ce801cf456b8dacd565ce8df8288b4d90e7317ff" type="tarxz">http://releases.llvm.org/3.9.1/llvm-3.9.1.src.tar.xz</Archive>
|
||||
<Archive sha1sum="95e4be54b70f32cf98a8de36821ea5495b84add8" type="binary">http://releases.llvm.org/3.9.1/cfe-3.9.1.src.tar.xz</Archive>
|
||||
<Archive sha1sum="f24e5ceb226a72e781cefde4e30f2d7be09ea305" type="binary">http://releases.llvm.org/3.9.1/clang-tools-extra-3.9.1.src.tar.xz</Archive>
|
||||
<Archive sha1sum="f6da59c9ed570c4c7091c25f0abe59aba0e29de3" type="binary">http://releases.llvm.org/3.9.1/lldb-3.9.1.src.tar.xz</Archive>
|
||||
<Archive sha1sum="938921d076e28943f5d5b653514f2ce36a88a55e" type="binary">http://releases.llvm.org/3.9.1/compiler-rt-3.9.1.src.tar.xz</Archive>
|
||||
<AdditionalFiles>
|
||||
<AdditionalFile target="msan-prevent-initialization-failure-with-newer-glibc.patch">msan-prevent-initialization-failure-with-newer-glibc.patch</AdditionalFile>
|
||||
<AdditionalFile target="AMDGPU-Fix-an-interaction-between-WQM-and-polygon-stippling.patch">AMDGPU-Fix-an-interaction-between-WQM-and-polygon-stippling.patch</AdditionalFile>
|
||||
</AdditionalFiles>
|
||||
<Archive sha1sum="723ac918979255706434a05f5af34b71c49c9971" type="tarxz">http://llvm.org/releases/3.8.0/llvm-3.8.0.src.tar.xz</Archive>
|
||||
<Archive sha1sum="2230ef962f2df3c13ec93f5b04b0e3cdff94b2ce" type="binary">http://llvm.org/releases/3.8.0/cfe-3.8.0.src.tar.xz</Archive>
|
||||
<Archive sha1sum="a99d8b6fc5e593c4671424b327779318a1856acf" type="binary">http://llvm.org/releases/3.8.0/clang-tools-extra-3.8.0.src.tar.xz</Archive>
|
||||
<Archive sha1sum="6d503cea94c131b6bfcf5254e62d32fcce1ebcc8" type="binary">http://llvm.org/releases/3.8.0/lldb-3.8.0.src.tar.xz</Archive>
|
||||
<Archive sha1sum="480ea09e369dac6de1f3759b27fa19417b26b69e" type="binary">http://llvm.org/releases/3.8.0/compiler-rt-3.8.0.src.tar.xz</Archive>
|
||||
<BuildDependencies>
|
||||
<Dependency>zlib-devel</Dependency>
|
||||
<Dependency>libxml2-devel</Dependency>
|
||||
@@ -205,9 +201,9 @@
|
||||
|
||||
<History>
|
||||
<Update release="4">
|
||||
<Date>2017-02-05</Date>
|
||||
<Version>3.9.1</Version>
|
||||
<Comment>Version Bump</Comment>
|
||||
<Date>2017-02-12</Date>
|
||||
<Version>3.8.0</Version>
|
||||
<Comment>Rebuild</Comment>
|
||||
<Name>Pisi Linux Community</Name>
|
||||
<Email>admin@pisilinux.org</Email>
|
||||
</Update>
|
||||
|
||||
Reference in New Issue
Block a user