explore i686 ICE further
This commit is contained in:
parent
77b4dd96e0
commit
6b8de850ea
@ -0,0 +1,45 @@
|
|||||||
|
From 3f96d70ce7f31d556b995733b44cb8715b64e329 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Thorsten Behrens <thorsten.behrens@allotropia.de>
|
||||||
|
Date: Mon, 31 Jan 2022 22:45:37 +0100
|
||||||
|
Subject: [PATCH 1/2] Avoid calling AVX code in library static initialization
|
||||||
|
|
||||||
|
Despite 26072b8db7ba53f00c83197cb064229a76001989 and
|
||||||
|
12c6b1ef6a824b09778163ec83fc44bb196e65db, Linux builds using
|
||||||
|
RH devtoolset-7 gcc7 still hit occasional unit test crashes
|
||||||
|
with illegal instructions.
|
||||||
|
|
||||||
|
Backtrace is always:
|
||||||
|
|
||||||
|
> #0 __static_initialization_and_destruction_0 (__initialize_p=1, __priority=65535) at core/sc/source/core/tool/arraysumAVX.cxx:20
|
||||||
|
> #1 _GLOBAL__sub_I_arraysumAVX.cxx(void) () at core/sc/source/core/tool/arraysumAVX.cxx:112
|
||||||
|
>
|
||||||
|
|
||||||
|
So lets make sure initializer is run only on function entry.
|
||||||
|
|
||||||
|
Change-Id: I69f5cb725e4d72fb346166b21870612473f974b8
|
||||||
|
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129246
|
||||||
|
Tested-by: Jenkins
|
||||||
|
Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
|
||||||
|
(cherry picked from commit d140817428cdbb519efa496f578bf6c054c94361)
|
||||||
|
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129251
|
||||||
|
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
|
||||||
|
---
|
||||||
|
sc/source/core/tool/arraysumAVX.cxx | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/sc/source/core/tool/arraysumAVX.cxx b/sc/source/core/tool/arraysumAVX.cxx
|
||||||
|
index e256248047d0..4d9ee02285e7 100644
|
||||||
|
--- a/sc/source/core/tool/arraysumAVX.cxx
|
||||||
|
+++ b/sc/source/core/tool/arraysumAVX.cxx
|
||||||
|
@@ -30,7 +30,7 @@ using namespace AVX;
|
||||||
|
*/
|
||||||
|
static inline void sumAVX(__m256d& sum, __m256d& err, const __m256d& value)
|
||||||
|
{
|
||||||
|
- const __m256d ANNULATE_SIGN_BIT
|
||||||
|
+ static const __m256d ANNULATE_SIGN_BIT
|
||||||
|
= _mm256_castsi256_pd(_mm256_set1_epi64x(0x7FFF'FFFF'FFFF'FFFF));
|
||||||
|
// Temporal parameter
|
||||||
|
__m256d t = _mm256_add_pd(sum, value);
|
||||||
|
--
|
||||||
|
2.33.1
|
||||||
|
|
@ -1,14 +1,14 @@
|
|||||||
From 4358a5df96b0989b6074dde0509711598ab5d26e Mon Sep 17 00:00:00 2001
|
From bc39839446e13e31ad4e95943446c08876853eb9 Mon Sep 17 00:00:00 2001
|
||||||
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
|
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
|
||||||
Date: Thu, 3 Feb 2022 14:29:21 +0000
|
Date: Thu, 3 Feb 2022 14:29:21 +0000
|
||||||
Subject: [PATCH] split out function to explore i686 ICE
|
Subject: [PATCH 2/2] split out function to explore i686 ICE
|
||||||
|
|
||||||
Change-Id: I75afe56b248236f30a96876e2aed96f5dd887df1
|
Change-Id: I75afe56b248236f30a96876e2aed96f5dd887df1
|
||||||
---
|
---
|
||||||
sc/Library_sc.mk | 1 +
|
sc/Library_sc.mk | 1 +
|
||||||
sc/source/core/tool/bahttext.cxx | 242 +++++++++++++++++++++++++++++++
|
sc/source/core/tool/bahttext.cxx | 238 +++++++++++++++++++++++++++++++
|
||||||
sc/source/core/tool/interpr2.cxx | 181 -----------------------
|
sc/source/core/tool/interpr2.cxx | 181 -----------------------
|
||||||
3 files changed, 243 insertions(+), 181 deletions(-)
|
3 files changed, 239 insertions(+), 181 deletions(-)
|
||||||
create mode 100644 sc/source/core/tool/bahttext.cxx
|
create mode 100644 sc/source/core/tool/bahttext.cxx
|
||||||
|
|
||||||
diff --git a/sc/Library_sc.mk b/sc/Library_sc.mk
|
diff --git a/sc/Library_sc.mk b/sc/Library_sc.mk
|
||||||
@ -25,10 +25,10 @@ index 936ca33901ee..f31bbd3f5f8c 100644
|
|||||||
sc/source/core/tool/cellform \
|
sc/source/core/tool/cellform \
|
||||||
diff --git a/sc/source/core/tool/bahttext.cxx b/sc/source/core/tool/bahttext.cxx
|
diff --git a/sc/source/core/tool/bahttext.cxx b/sc/source/core/tool/bahttext.cxx
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 000000000000..8d113019b2d8
|
index 000000000000..76b99973271d
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/sc/source/core/tool/bahttext.cxx
|
+++ b/sc/source/core/tool/bahttext.cxx
|
||||||
@@ -0,0 +1,242 @@
|
@@ -0,0 +1,238 @@
|
||||||
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||||
+/*
|
+/*
|
||||||
+ * This file is part of the LibreOffice project.
|
+ * This file is part of the LibreOffice project.
|
||||||
@ -83,15 +83,13 @@ index 000000000000..8d113019b2d8
|
|||||||
+#define UTF8_TH_MINUS "\340\270\245\340\270\232"
|
+#define UTF8_TH_MINUS "\340\270\245\340\270\232"
|
||||||
+
|
+
|
||||||
+// local functions
|
+// local functions
|
||||||
+namespace
|
+static void lclSplitBlock(double& rfInt, sal_Int32& rnBlock, double fValue, double fSize)
|
||||||
+{
|
|
||||||
+void lclSplitBlock(double& rfInt, sal_Int32& rnBlock, double fValue, double fSize)
|
|
||||||
+{
|
+{
|
||||||
+ rnBlock = static_cast<sal_Int32>(modf((fValue + 0.1) / fSize, &rfInt) * fSize + 0.1);
|
+ rnBlock = static_cast<sal_Int32>(modf((fValue + 0.1) / fSize, &rfInt) * fSize + 0.1);
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+/** Appends a digit (0 to 9) to the passed string. */
|
+/** Appends a digit (0 to 9) to the passed string. */
|
||||||
+void lclAppendDigit(OStringBuffer& rText, sal_Int32 nDigit)
|
+static void lclAppendDigit(OStringBuffer& rText, sal_Int32 nDigit)
|
||||||
+{
|
+{
|
||||||
+ switch (nDigit)
|
+ switch (nDigit)
|
||||||
+ {
|
+ {
|
||||||
@ -134,7 +132,7 @@ index 000000000000..8d113019b2d8
|
|||||||
+ @param nDigit A digit in the range from 1 to 9.
|
+ @param nDigit A digit in the range from 1 to 9.
|
||||||
+ @param nPow10 A value in the range from 2 to 5.
|
+ @param nPow10 A value in the range from 2 to 5.
|
||||||
+ */
|
+ */
|
||||||
+void lclAppendPow10(OStringBuffer& rText, sal_Int32 nDigit, sal_Int32 nPow10)
|
+static void lclAppendPow10(OStringBuffer& rText, sal_Int32 nDigit, sal_Int32 nPow10)
|
||||||
+{
|
+{
|
||||||
+ OSL_ENSURE((1 <= nDigit) && (nDigit <= 9), "lclAppendPow10 - illegal digit");
|
+ OSL_ENSURE((1 <= nDigit) && (nDigit <= 9), "lclAppendPow10 - illegal digit");
|
||||||
+ lclAppendDigit(rText, nDigit);
|
+ lclAppendDigit(rText, nDigit);
|
||||||
@ -158,7 +156,7 @@ index 000000000000..8d113019b2d8
|
|||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+/** Appends a block of 6 digits (value from 1 to 999,999) to the passed string. */
|
+/** Appends a block of 6 digits (value from 1 to 999,999) to the passed string. */
|
||||||
+void lclAppendBlock(OStringBuffer& rText, sal_Int32 nValue)
|
+static void lclAppendBlock(OStringBuffer& rText, sal_Int32 nValue)
|
||||||
+{
|
+{
|
||||||
+ OSL_ENSURE((1 <= nValue) && (nValue <= 999999), "lclAppendBlock - illegal value");
|
+ OSL_ENSURE((1 <= nValue) && (nValue <= 999999), "lclAppendBlock - illegal value");
|
||||||
+ if (nValue >= 100000)
|
+ if (nValue >= 100000)
|
||||||
@ -200,8 +198,6 @@ index 000000000000..8d113019b2d8
|
|||||||
+ lclAppendDigit(rText, nOne);
|
+ lclAppendDigit(rText, nOne);
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+} // namespace
|
|
||||||
+
|
|
||||||
+void ScInterpreter::ScBahtText()
|
+void ScInterpreter::ScBahtText()
|
||||||
+{
|
+{
|
||||||
+ sal_uInt8 nParamCount = GetByte();
|
+ sal_uInt8 nParamCount = GetByte();
|
||||||
|
@ -248,8 +248,9 @@ Patch3: 0001-Revert-tdf-101630-gdrive-support-w-oAuth-and-Drive-A.patch
|
|||||||
Patch4: 0001-it-doesn-t-work-to-just-have-Roman-as-a-font-name-an.patch
|
Patch4: 0001-it-doesn-t-work-to-just-have-Roman-as-a-font-name-an.patch
|
||||||
# disable another poor test
|
# disable another poor test
|
||||||
Patch5: 0001-the-fedora-kacst-book-fonts-2.0-26-does-have-these-w.patch
|
Patch5: 0001-the-fedora-kacst-book-fonts-2.0-26-does-have-these-w.patch
|
||||||
|
Patch6: 0001-Avoid-calling-AVX-code-in-library-static-initializat.patch
|
||||||
# see if ICE still happens
|
# see if ICE still happens
|
||||||
Patch6: 0001-split-out-function-to-explore-i686-ICE.patch
|
Patch7: 0001-split-out-function-to-explore-i686-ICE.patch
|
||||||
|
|
||||||
# not upstreamed
|
# not upstreamed
|
||||||
Patch500: 0001-disable-libe-book-support.patch
|
Patch500: 0001-disable-libe-book-support.patch
|
||||||
|
Loading…
Reference in New Issue
Block a user