[llvm-branch-commits] [cfe-branch] r257654 - Release note for debugger tuning

2016-01-18 Thread Paul Robinson via llvm-branch-commits
Author: probinson
Date: Wed Jan 13 13:24:51 2016
New Revision: 257654

URL: http://llvm.org/viewvc/llvm-project?rev=257654&view=rev
Log:
Release note for debugger tuning

Modified:
cfe/branches/release_38/docs/ReleaseNotes.rst

Modified: cfe/branches/release_38/docs/ReleaseNotes.rst
URL: 
http://llvm.org/viewvc/llvm-project/cfe/branches/release_38/docs/ReleaseNotes.rst?rev=257654&r1=257653&r2=257654&view=diff
==
--- cfe/branches/release_38/docs/ReleaseNotes.rst (original)
+++ cfe/branches/release_38/docs/ReleaseNotes.rst Wed Jan 13 13:24:51 2016
@@ -61,7 +61,22 @@ about them. The improvements since the 3
 New Compiler Flags
 --
 
-The option 
+Clang can "tune" DWARF debugging information to suit one of several different
+debuggers. This fine-tuning can mean omitting DWARF features that the
+debugger does not need or use, or including DWARF extensions specific to the
+debugger. Clang supports tuning for three debuggers, as follows.
+
+- ``-ggdb`` is equivalent to ``-g`` plus tuning for the GDB debugger. For
+  compatibility with GCC, Clang allows this option to be followed by a
+  single digit from 0 to 3 indicating the debugging information "level."
+  For example, ``-ggdb1`` is equivalent to ``-ggdb -g1``.
+
+- ``-glldb`` is equivalent to ``-g`` plus tuning for the LLDB debugger.
+
+- ``-gsce`` is equivalent to ``-g`` plus tuning for the Sony Computer
+  Entertainment debugger.
+
+Specifying ``-g`` without a tuning option will use a target-dependent default.
 
 
 New Pragmas in Clang


___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] 6ef9505 - [RGT][ADT] Remove test assertion that will not be executed

2021-01-22 Thread Paul Robinson via llvm-branch-commits

Author: Paul Robinson
Date: 2021-01-22T14:52:55-08:00
New Revision: 6ef95056b9dce1aa64d975b70f059673484bed87

URL: 
https://github.com/llvm/llvm-project/commit/6ef95056b9dce1aa64d975b70f059673484bed87
DIFF: 
https://github.com/llvm/llvm-project/commit/6ef95056b9dce1aa64d975b70f059673484bed87.diff

LOG: [RGT][ADT] Remove test assertion that will not be executed

Found by the Rotten Green Tests project.

Differential Revision: https://reviews.llvm.org/D95255

Added: 


Modified: 
llvm/unittests/ADT/ImmutableSetTest.cpp

Removed: 




diff  --git a/llvm/unittests/ADT/ImmutableSetTest.cpp 
b/llvm/unittests/ADT/ImmutableSetTest.cpp
index 9fe7a80d9900..e23cd2b3d1a8 100644
--- a/llvm/unittests/ADT/ImmutableSetTest.cpp
+++ b/llvm/unittests/ADT/ImmutableSetTest.cpp
@@ -180,7 +180,6 @@ TEST_F(ImmutableSetTest, IterLongSetTest) {
 
   int i = 0;
   for (ImmutableSet::iterator I = S.begin(), E = S.end(); I != E; ++I) {
-ASSERT_EQ(i, *I);
 i++;
   }
   ASSERT_EQ(0, i);



___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] 6ea7ecb - [RGT] Don't use EXPECT* macros in a subprocess that exits by signalling

2021-01-22 Thread Paul Robinson via llvm-branch-commits

Author: Paul Robinson
Date: 2021-01-22T15:04:34-08:00
New Revision: 6ea7ecbb72aa139ebb1a343a6d544b84b99f1f3a

URL: 
https://github.com/llvm/llvm-project/commit/6ea7ecbb72aa139ebb1a343a6d544b84b99f1f3a
DIFF: 
https://github.com/llvm/llvm-project/commit/6ea7ecbb72aa139ebb1a343a6d544b84b99f1f3a.diff

LOG: [RGT] Don't use EXPECT* macros in a subprocess that exits by signalling

Found by the Rotten Green Tests project.

Differential Revision: https://reviews.llvm.org/D95256

Added: 


Modified: 
llvm/unittests/Support/CrashRecoveryTest.cpp

Removed: 




diff  --git a/llvm/unittests/Support/CrashRecoveryTest.cpp 
b/llvm/unittests/Support/CrashRecoveryTest.cpp
index c38fa0b4cb25..e95513eb2841 100644
--- a/llvm/unittests/Support/CrashRecoveryTest.cpp
+++ b/llvm/unittests/Support/CrashRecoveryTest.cpp
@@ -157,8 +157,12 @@ TEST(CrashRecoveryTest, UnixCRCReturnCode) {
   if (getenv("LLVM_CRC_UNIXCRCRETURNCODE")) {
 llvm::CrashRecoveryContext::Enable();
 CrashRecoveryContext CRC;
-EXPECT_FALSE(CRC.RunSafely(abort));
-EXPECT_EQ(CRC.RetCode, 128 + SIGABRT);
+// This path runs in a subprocess that exits by signalling, so don't use
+// the googletest macros to verify things as they won't report properly.
+if (CRC.RunSafely(abort))
+  llvm_unreachable("RunSafely returned true!");
+if (CRC.RetCode != 128 + SIGABRT)
+  llvm_unreachable("Unexpected RetCode!");
 // re-throw signal
 llvm::sys::unregisterHandlers();
 raise(CRC.RetCode - 128);



___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] 25fefa5 - [RGT][TextAPI] Remove a zero-trip loop and the assertions within it

2021-01-22 Thread Paul Robinson via llvm-branch-commits

Author: Paul Robinson
Date: 2021-01-22T15:07:41-08:00
New Revision: 25fefa5a098e95496735f793fd01f3e82874

URL: 
https://github.com/llvm/llvm-project/commit/25fefa5a098e95496735f793fd01f3e82874
DIFF: 
https://github.com/llvm/llvm-project/commit/25fefa5a098e95496735f793fd01f3e82874.diff

LOG: [RGT][TextAPI] Remove a zero-trip loop and the assertions within it

Found by the Rotten Green Tests project.

Differential Revision: https://reviews.llvm.org/D95259

Added: 


Modified: 
llvm/unittests/TextAPI/TextStubV4Tests.cpp

Removed: 




diff  --git a/llvm/unittests/TextAPI/TextStubV4Tests.cpp 
b/llvm/unittests/TextAPI/TextStubV4Tests.cpp
index 0ab9c524073f..403e2d691e52 100644
--- a/llvm/unittests/TextAPI/TextStubV4Tests.cpp
+++ b/llvm/unittests/TextAPI/TextStubV4Tests.cpp
@@ -255,18 +255,9 @@ TEST(TBDv4, ReadMultipleDocuments) {
 {Targets[0], Targets[2]});
   EXPECT_EQ(1U, File->reexportedLibraries().size());
   EXPECT_EQ(reexport, File->reexportedLibraries().front());
-  ExportedSymbolSeq Exports;
-  for (const auto *Sym : File->symbols()) {
-EXPECT_FALSE(Sym->isWeakReferenced());
-EXPECT_FALSE(Sym->isUndefined());
-Exports.emplace_back(ExportedSymbol{Sym->getKind(), Sym->getName().str(),
-Sym->isWeakDefined(),
-Sym->isThreadLocalValue()});
-  }
-  EXPECT_EQ(0U, Exports.size());
+  EXPECT_TRUE(File->symbols().empty());
 
   // Check Inlined Document
-  Exports.clear();
   Targets.clear();
   Uuids.clear();
   PlatformKind Platform = PlatformKind::macOS;
@@ -292,6 +283,7 @@ TEST(TBDv4, ReadMultipleDocuments) {
   EXPECT_TRUE(Document->isApplicationExtensionSafe());
   EXPECT_FALSE(Document->isInstallAPI());
 
+  ExportedSymbolSeq Exports;
   ExportedSymbolSeq Reexports, Undefineds;
   for (const auto *Sym : Document->symbols()) {
 ExportedSymbol Temp =



___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] e5eb5c8 - NFC: Use -LABEL more

2021-01-11 Thread Paul Robinson via llvm-branch-commits

Author: Paul Robinson
Date: 2021-01-11T08:14:58-08:00
New Revision: e5eb5c8a7f30ddb01b7e00a010714ac9711f29de

URL: 
https://github.com/llvm/llvm-project/commit/e5eb5c8a7f30ddb01b7e00a010714ac9711f29de
DIFF: 
https://github.com/llvm/llvm-project/commit/e5eb5c8a7f30ddb01b7e00a010714ac9711f29de.diff

LOG: NFC: Use -LABEL more

There were a number of tests needing updates for D91734, and I added a
bunch of LABEL directives to help track down where those had to go.
These directives are an improvement independent of the functional
patch, so I'm committing them as their own separate patch.

Added: 


Modified: 
llvm/test/CodeGen/AArch64/arm64-fast-isel-call.ll
llvm/test/CodeGen/AArch64/arm64-fast-isel.ll
llvm/test/CodeGen/AArch64/elf-globals-static.ll
llvm/test/CodeGen/ARM/fast-isel-call.ll
llvm/test/CodeGen/ARM/fast-isel-ldrh-strh-arm.ll
llvm/test/CodeGen/ARM/fast-isel-select.ll
llvm/test/CodeGen/PowerPC/fast-isel-load-store.ll

Removed: 




diff  --git a/llvm/test/CodeGen/AArch64/arm64-fast-isel-call.ll 
b/llvm/test/CodeGen/AArch64/arm64-fast-isel-call.ll
index 586b7d116f5c..00016a6a7fff 100644
--- a/llvm/test/CodeGen/AArch64/arm64-fast-isel-call.ll
+++ b/llvm/test/CodeGen/AArch64/arm64-fast-isel-call.ll
@@ -78,7 +78,7 @@ declare i32 @bar(i8 zeroext, i8 zeroext, i8 zeroext, i8 
zeroext, i8 zeroext, i8
 ; Test materialization of integers.  Target-independent selector handles this.
 define i32 @t2() {
 entry:
-; CHECK-LABEL: t2
+; CHECK-LABEL: t2:
 ; CHECK:   mov x0, xzr
 ; CHECK:   mov w1, #-8
 ; CHECK:   mov [[REG2:w[0-9]+]], #1023
@@ -99,6 +99,7 @@ declare i32 @func2(i64 zeroext, i32 signext, i16 zeroext, i8 
signext, i1 zeroext
 declare void @callee_b0f(i8 %bp10, i8 %bp11, i8 %bp12, i8 %bp13, i8 %bp14, i8 
%bp15, i8 %bp17, i8 %bp18, i8 %bp19)
 define void @caller_b1f() {
 entry:
+; CHECK-LABEL: caller_b1f
 ; CHECK-BE-LABEL: caller_b1f
 ; CHECK-BE:   strb w{{.*}}, [sp, #7]
   call void @callee_b0f(i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8, i8 42)

diff  --git a/llvm/test/CodeGen/AArch64/arm64-fast-isel.ll 
b/llvm/test/CodeGen/AArch64/arm64-fast-isel.ll
index 7dc849b7d2c4..6d402c95ee3f 100644
--- a/llvm/test/CodeGen/AArch64/arm64-fast-isel.ll
+++ b/llvm/test/CodeGen/AArch64/arm64-fast-isel.ll
@@ -2,7 +2,7 @@
 
 define void @t0(i32 %a) nounwind {
 entry:
-; CHECK: t0
+; CHECK-LABEL: t0:
 ; CHECK: str {{w[0-9]+}}, [sp, #12]
 ; CHECK-NEXT: ldr [[REGISTER:w[0-9]+]], [sp, #12]
 ; CHECK-NEXT: str [[REGISTER]], [sp, #12]
@@ -15,7 +15,7 @@ entry:
 }
 
 define void @t1(i64 %a) nounwind {
-; CHECK: t1
+; CHECK-LABEL: t1:
 ; CHECK: str {{x[0-9]+}}, [sp, #8]
 ; CHECK-NEXT: ldr [[REGISTER:x[0-9]+]], [sp, #8]
 ; CHECK-NEXT: str [[REGISTER]], [sp, #8]
@@ -29,7 +29,7 @@ define void @t1(i64 %a) nounwind {
 
 define zeroext i1 @i1(i1 %a) nounwind {
 entry:
-; CHECK: @i1
+; CHECK-LABEL: i1:
 ; CHECK: and [[REG:w[0-9]+]], w0, #0x1
 ; CHECK: strb [[REG]], [sp, #15]
 ; CHECK: ldrb [[REG1:w[0-9]+]], [sp, #15]
@@ -84,7 +84,7 @@ entry:
 }
 
 define void @t6() nounwind {
-; CHECK: t6
+; CHECK-LABEL: t6:
 ; CHECK: brk #0x1
   tail call void @llvm.trap()
   ret void

diff  --git a/llvm/test/CodeGen/AArch64/elf-globals-static.ll 
b/llvm/test/CodeGen/AArch64/elf-globals-static.ll
index 928ec70af0b1..393f42049011 100644
--- a/llvm/test/CodeGen/AArch64/elf-globals-static.ll
+++ b/llvm/test/CodeGen/AArch64/elf-globals-static.ll
@@ -15,6 +15,7 @@ define i8 @test_i8(i8 %new) {
 ; CHECK: ldrb {{w[0-9]+}}, [x[[HIREG]], :lo12:var8]
 ; CHECK: strb {{w[0-9]+}}, [x[[HIREG]], :lo12:var8]
 
+; CHECK-FAST-LABEL: test_i8:
 ; CHECK-FAST: adrp x[[HIREG:[0-9]+]], var8
 ; CHECK-FAST: ldrb {{w[0-9]+}}, [x[[HIREG]], :lo12:var8]
 }
@@ -28,6 +29,7 @@ define i16 @test_i16(i16 %new) {
 ; CHECK: ldrh {{w[0-9]+}}, [x[[HIREG]], :lo12:var16]
 ; CHECK: strh {{w[0-9]+}}, [x[[HIREG]], :lo12:var16]
 
+; CHECK-FAST-LABEL: test_i16:
 ; CHECK-FAST: adrp x[[HIREG:[0-9]+]], var16
 ; CHECK-FAST: ldrh {{w[0-9]+}}, [x[[HIREG]], :lo12:var16]
 }
@@ -41,6 +43,7 @@ define i32 @test_i32(i32 %new) {
 ; CHECK: ldr {{w[0-9]+}}, [x[[HIREG]], :lo12:var32]
 ; CHECK: str {{w[0-9]+}}, [x[[HIREG]], :lo12:var32]
 
+; CHECK-FAST-LABEL: test_i32:
 ; CHECK-FAST: adrp x[[HIREG:[0-9]+]], var32
 ; CHECK-FAST: add {{x[0-9]+}}, x[[HIREG]], :lo12:var32
 }
@@ -54,6 +57,7 @@ define i64 @test_i64(i64 %new) {
 ; CHECK: ldr {{x[0-9]+}}, [x[[HIREG]], :lo12:var64]
 ; CHECK: str {{x[0-9]+}}, [x[[HIREG]], :lo12:var64]
 
+; CHECK-FAST-LABEL: test_i64:
 ; CHECK-FAST: adrp x[[HIREG:[0-9]+]], var64
 ; CHECK-FAST: add {{x[0-9]+}}, x[[HIREG]], :lo12:var64
 }
@@ -64,6 +68,7 @@ define i64* @test_addr() {
 ; CHECK: adrp [[HIREG:x[0-9]+]], var64
 ; CHECK: add x0, [[HIREG]], :lo12:var64
 
+; CHECK-FAST-LABEL: test_addr:
 ; CHECK-FAST: adrp [[HIREG:x[0-9]+]], var64
 ; CHECK-FAST: add x0, [[HIREG]], :lo12:var64
 }

diff  --git a/llvm/test/CodeGen/ARM/fast-isel-call.ll 
b/llvm/test/CodeGen/

[llvm-branch-commits] [lld] c161775 - [FastISel] Flush local value map on every instruction

2021-01-11 Thread Paul Robinson via llvm-branch-commits

Author: Paul Robinson
Date: 2021-01-11T08:32:36-08:00
New Revision: c161775decddcc86fbbfefd7485a5d0ef5842aec

URL: 
https://github.com/llvm/llvm-project/commit/c161775decddcc86fbbfefd7485a5d0ef5842aec
DIFF: 
https://github.com/llvm/llvm-project/commit/c161775decddcc86fbbfefd7485a5d0ef5842aec.diff

LOG: [FastISel] Flush local value map on every instruction

Local values are constants or addresses that can't be folded into
the instruction that uses them. FastISel materializes these in a
"local value" area that always dominates the current insertion
point, to try to avoid materializing these values more than once
(per block).

https://reviews.llvm.org/D43093 added code to sink these local
value instructions to their first use, which has two beneficial
effects. One, it is likely to avoid some unnecessary spills and
reloads; two, it allows us to attach the debug location of the
user to the local value instruction. The latter effect can
improve the debugging experience for debuggers with a "set next
statement" feature, such as the Visual Studio debugger and PS4
debugger, because instructions to set up constants for a given
statement will be associated with the appropriate source line.

There are also some constants (primarily addresses) that could be
produced by no-op casts or GEP instructions; the main difference
from "local value" instructions is that these are values from
separate IR instructions, and therefore could have multiple users
across multiple basic blocks. D43093 avoided sinking these, even
though they were emitted to the same "local value" area as the
other instructions. The patch comment for D43093 states:

  Local values may also be used by no-op casts, which adds the
  register to the RegFixups table. Without reversing the RegFixups
  map direction, we don't have enough information to sink these
  instructions.

This patch undoes most of D43093, and instead flushes the local
value map after(*) every IR instruction, using that instruction's
debug location. This avoids sometimes incorrect locations used
previously, and emits instructions in a more natural order.

In addition, constants materialized due to PHI instructions are
not assigned a debug location immediately; instead, when the
local value map is flushed, if the first local value instruction
has no debug location, it is given the same location as the
first non-local-value-map instruction.  This prevents PHIs
from introducing unattributed instructions, which would either
be implicitly attributed to the location for the preceding IR
instruction, or given line 0 if they are at the beginning of
a machine basic block.  Neither of those consequences is good
for debugging.

This does mean materialized values are not re-used across IR
instruction boundaries; however, only about 5% of those values
were reused in an experimental self-build of clang.

(*) Actually, just prior to the next instruction. It seems like
it would be cleaner the other way, but I was having trouble
getting that to work.

This reapplies commits cf1c774d and dc35368c, and adds the
modification to PHI handling, which should avoid problems
with debugging under gdb.

Differential Revision: https://reviews.llvm.org/D91734

Added: 
llvm/test/CodeGen/X86/fast-isel-prolog-dbgloc.ll

Modified: 
lld/test/wasm/debug-removed-fn.ll
lldb/test/Shell/SymbolFile/NativePDB/disassembly.cpp
lldb/test/Shell/SymbolFile/NativePDB/load-pdb.cpp
llvm/include/llvm/CodeGen/FastISel.h
llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
llvm/test/CodeGen/AArch64/arm64-abi_align.ll
llvm/test/CodeGen/AArch64/arm64-fast-isel-call.ll
llvm/test/CodeGen/AArch64/arm64-fast-isel-gv.ll
llvm/test/CodeGen/AArch64/arm64-fast-isel-intrinsic.ll
llvm/test/CodeGen/AArch64/arm64-fast-isel.ll
llvm/test/CodeGen/AArch64/arm64-patchpoint-webkit_jscc.ll
llvm/test/CodeGen/AArch64/cfguard-checks.ll
llvm/test/CodeGen/AArch64/elf-globals-static.ll
llvm/test/CodeGen/AArch64/large-stack.ll
llvm/test/CodeGen/ARM/fast-isel-call.ll
llvm/test/CodeGen/ARM/fast-isel-intrinsic.ll
llvm/test/CodeGen/ARM/fast-isel-ldr-str-thumb-neg-index.ll
llvm/test/CodeGen/ARM/fast-isel-ldrh-strh-arm.ll
llvm/test/CodeGen/ARM/fast-isel-select.ll
llvm/test/CodeGen/ARM/fast-isel.ll
llvm/test/CodeGen/Mips/Fast-ISel/callabi.ll
llvm/test/CodeGen/Mips/Fast-ISel/fastalloca.ll
llvm/test/CodeGen/Mips/Fast-ISel/fpcmpa.ll
llvm/test/CodeGen/Mips/Fast-ISel/icmpa.ll
llvm/test/CodeGen/Mips/Fast-ISel/logopm.ll
llvm/test/CodeGen/Mips/Fast-ISel/overflt.ll
llvm/test/CodeGen/Mips/Fast-ISel/shftopm.ll
llvm/test/CodeGen/Mips/Fast-ISel/simplestore.ll
llvm/test/CodeGen/Mips/Fast-ISel/simplestorei.ll
llvm/test/CodeGen/Mips/emergency-spill-slot-near-fp.ll
llvm/test/CodeGen/PowerPC/elf-common.ll
llvm/test/CodeGen/PowerPC/fast-isel-load-store.ll
llvm/test/CodeGen/PowerPC/mcm-1.ll
llvm/test/CodeGen/PowerPC/mcm-13.ll
llvm/test/CodeGen/PowerPC/mcm-2.ll
   

[llvm-branch-commits] [llvm] be179b9 - [FastISel] NFC: Remove obsolete -fast-isel-sink-local-values option

2021-01-11 Thread Paul Robinson via llvm-branch-commits

Author: Paul Robinson
Date: 2021-01-11T09:32:49-08:00
New Revision: be179b9946f6dfd6e3d957d9f7a6ee992d1f69d2

URL: 
https://github.com/llvm/llvm-project/commit/be179b9946f6dfd6e3d957d9f7a6ee992d1f69d2
DIFF: 
https://github.com/llvm/llvm-project/commit/be179b9946f6dfd6e3d957d9f7a6ee992d1f69d2.diff

LOG: [FastISel] NFC: Remove obsolete -fast-isel-sink-local-values option

This option is not used for anything after #c161665 (D91737).
This commit reapplies #a474657.

Added: 


Modified: 
llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
llvm/test/CodeGen/AArch64/arm64-abi_align.ll
llvm/test/CodeGen/AArch64/arm64-fast-isel-call.ll
llvm/test/CodeGen/AArch64/arm64-fast-isel-gv.ll
llvm/test/CodeGen/AArch64/arm64-fast-isel-intrinsic.ll
llvm/test/CodeGen/AArch64/arm64-fast-isel.ll
llvm/test/CodeGen/AArch64/arm64-patchpoint-webkit_jscc.ll
llvm/test/CodeGen/AArch64/swifterror.ll
llvm/test/CodeGen/ARM/fast-isel-call.ll
llvm/test/CodeGen/ARM/fast-isel-intrinsic.ll
llvm/test/CodeGen/ARM/fast-isel-select.ll
llvm/test/CodeGen/ARM/fast-isel-vararg.ll
llvm/test/CodeGen/ARM/swifterror.ll
llvm/test/CodeGen/Mips/Fast-ISel/callabi.ll
llvm/test/CodeGen/Mips/Fast-ISel/simplestore.ll
llvm/test/CodeGen/Mips/Fast-ISel/simplestorei.ll
llvm/test/CodeGen/X86/avx512-mask-zext-bugfix.ll
llvm/test/CodeGen/X86/bmi-intrinsics-fast-isel.ll
llvm/test/CodeGen/X86/fast-isel-call-cleanup.ll
llvm/test/CodeGen/X86/inreg.ll
llvm/test/CodeGen/X86/pr32241.ll
llvm/test/CodeGen/X86/pr32284.ll
llvm/test/CodeGen/X86/pr32340.ll
llvm/test/CodeGen/X86/pr32345.ll
llvm/test/CodeGen/X86/pr32484.ll
llvm/test/CodeGen/X86/sink-local-value.ll
llvm/test/CodeGen/X86/sse-intrinsics-fast-isel.ll
llvm/test/DebugInfo/Mips/delay-slot.ll
llvm/test/DebugInfo/X86/prologue-stack.ll

Removed: 




diff  --git a/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp 
b/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
index 27e359a5c696..e9b116798ad3 100644
--- a/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
@@ -113,11 +113,6 @@ using namespace PatternMatch;
 
 #define DEBUG_TYPE "isel"
 
-// FIXME: Remove this after the feature has proven reliable.
-static cl::opt SinkLocalValues("fast-isel-sink-local-values",
- cl::init(true), cl::Hidden,
- cl::desc("Sink local values in 
FastISel"));
-
 STATISTIC(NumFastIselSuccessIndependent, "Number of insts selected by "
  "target-independent selector");
 STATISTIC(NumFastIselSuccessTarget, "Number of insts selected by "

diff  --git a/llvm/test/CodeGen/AArch64/arm64-abi_align.ll 
b/llvm/test/CodeGen/AArch64/arm64-abi_align.ll
index fe0b31fb2db9..5224eca76619 100644
--- a/llvm/test/CodeGen/AArch64/arm64-abi_align.ll
+++ b/llvm/test/CodeGen/AArch64/arm64-abi_align.ll
@@ -1,5 +1,5 @@
-; RUN: llc -fast-isel-sink-local-values -aarch64-load-store-renaming=true < %s 
-mtriple=arm64-apple-darwin -mcpu=cyclone -enable-misched=false 
-frame-pointer=all | FileCheck %s
-; RUN: llc -fast-isel-sink-local-values -aarch64-load-store-renaming=true  < 
%s -mtriple=arm64-apple-darwin -O0 -frame-pointer=all -fast-isel | FileCheck 
-check-prefix=FAST %s
+; RUN: llc -aarch64-load-store-renaming=true < %s -mtriple=arm64-apple-darwin 
-mcpu=cyclone -enable-misched=false -frame-pointer=all | FileCheck %s
+; RUN: llc -aarch64-load-store-renaming=true  < %s -mtriple=arm64-apple-darwin 
-O0 -frame-pointer=all -fast-isel | FileCheck -check-prefix=FAST %s
 
 ; rdar://12648441
 ; Generated from arm64-arguments.c with -O2.

diff  --git a/llvm/test/CodeGen/AArch64/arm64-fast-isel-call.ll 
b/llvm/test/CodeGen/AArch64/arm64-fast-isel-call.ll
index a677d4a14353..9b9eb8d29bed 100644
--- a/llvm/test/CodeGen/AArch64/arm64-fast-isel-call.ll
+++ b/llvm/test/CodeGen/AArch64/arm64-fast-isel-call.ll
@@ -1,6 +1,6 @@
-; RUN: llc -fast-isel-sink-local-values -O0 -fast-isel -fast-isel-abort=2 
-code-model=small -verify-machineinstrs -frame-pointer=all 
-mtriple=arm64-apple-darwin   < %s | FileCheck %s
-; RUN: llc -fast-isel-sink-local-values -O0 -fast-isel -fast-isel-abort=2 
-code-model=large -verify-machineinstrs -frame-pointer=all 
-mtriple=arm64-apple-darwin   < %s | FileCheck %s --check-prefix=LARGE
-; RUN: llc -fast-isel-sink-local-values -O0 -fast-isel -fast-isel-abort=2 
-code-model=small -verify-machineinstrs -frame-pointer=all 
-mtriple=aarch64_be-linux-gnu < %s | FileCheck %s --check-prefix=CHECK-BE
+; RUN: llc -O0 -fast-isel -fast-isel-abort=2 -code-model=small 
-verify-machineinstrs -frame-pointer=all -mtriple=arm64-apple-darwin   < %s | 
FileCheck %s
+; RUN: llc -O0 -fast-isel -fast-isel-abort=2 -code-model=large 
-verify-machineinstrs -frame-pointer=all -mtriple=arm64-apple-darwin   < %s | 
FileCheck %s --check-prefix=LARGE
+; RUN: llc -O0

[llvm-branch-commits] [llvm] 1f9c292 - [FastISel] NFC: Clean up unnecessary bookkeeping

2021-01-11 Thread Paul Robinson via llvm-branch-commits

Author: Paul Robinson
Date: 2021-01-11T09:40:39-08:00
New Revision: 1f9c29228cecfde9e993cd2818d9cd3119189163

URL: 
https://github.com/llvm/llvm-project/commit/1f9c29228cecfde9e993cd2818d9cd3119189163
DIFF: 
https://github.com/llvm/llvm-project/commit/1f9c29228cecfde9e993cd2818d9cd3119189163.diff

LOG: [FastISel] NFC: Clean up unnecessary bookkeeping

Now that we flush the local value map for every instruction, we don't
need any extra flushes for specific cases.  Also, LastFlushPoint is
not used for anything.  Follow-ups to #c161665 (D91734).

This reapplies #3fd39d3.

Differential Revision: https://reviews.llvm.org/D92338

Added: 


Modified: 
llvm/include/llvm/CodeGen/FastISel.h
llvm/lib/CodeGen/SelectionDAG/FastISel.cpp

Removed: 




diff  --git a/llvm/include/llvm/CodeGen/FastISel.h 
b/llvm/include/llvm/CodeGen/FastISel.h
index d20f443e3013..81c1d6aad49a 100644
--- a/llvm/include/llvm/CodeGen/FastISel.h
+++ b/llvm/include/llvm/CodeGen/FastISel.h
@@ -224,10 +224,6 @@ class FastISel {
   /// makes sense (for example, on function calls)
   MachineInstr *EmitStartPt;
 
-  /// Last local value flush point. On a subsequent flush, no local value will
-  /// sink past this point.
-  MachineBasicBlock::iterator LastFlushPoint;
-
 public:
   virtual ~FastISel();
 

diff  --git a/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp 
b/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
index e9b116798ad3..c018f1647169 100644
--- a/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
@@ -236,7 +236,6 @@ void FastISel::flushLocalValueMap() {
   LastLocalValue = EmitStartPt;
   recomputeInsertPt();
   SavedInsertPt = FuncInfo.InsertPt;
-  LastFlushPoint = FuncInfo.InsertPt;
 }
 
 bool FastISel::hasTrivialKill(const Value *V) {
@@ -458,8 +457,6 @@ void FastISel::removeDeadCode(MachineBasicBlock::iterator I,
   assert(I.isValid() && E.isValid() && std::distance(I, E) > 0 &&
  "Invalid iterator!");
   while (I != E) {
-if (LastFlushPoint == I)
-  LastFlushPoint = E;
 if (SavedInsertPt == I)
   SavedInsertPt = E;
 if (EmitStartPt == I)
@@ -1210,11 +1207,6 @@ bool FastISel::selectCall(const User *I) {
 
   // Handle simple inline asms.
   if (const InlineAsm *IA = dyn_cast(Call->getCalledOperand())) {
-// If the inline asm has side effects, then make sure that no local value
-// lives across by flushing the local value map.
-if (IA->hasSideEffects())
-  flushLocalValueMap();
-
 // Don't attempt to handle constraints.
 if (!IA->getConstraintString().empty())
   return false;
@@ -1244,15 +1236,6 @@ bool FastISel::selectCall(const User *I) {
   if (const auto *II = dyn_cast(Call))
 return selectIntrinsicCall(II);
 
-  // Usually, it does not make sense to initialize a value,
-  // make an unrelated function call and use the value, because
-  // it tends to be spilled on the stack. So, we move the pointer
-  // to the last local value to the beginning of the block, so that
-  // all the values which have already been materialized,
-  // appear after the call. It also makes sense to skip intrinsics
-  // since they tend to be inlined.
-  flushLocalValueMap();
-
   return lowerCall(Call);
 }
 
@@ -1409,20 +1392,6 @@ bool FastISel::selectIntrinsicCall(const IntrinsicInst 
*II) {
 return selectXRayCustomEvent(II);
   case Intrinsic::xray_typedevent:
 return selectXRayTypedEvent(II);
-
-  case Intrinsic::memcpy:
-  case Intrinsic::memcpy_element_unordered_atomic:
-  case Intrinsic::memcpy_inline:
-  case Intrinsic::memmove:
-  case Intrinsic::memmove_element_unordered_atomic:
-  case Intrinsic::memset:
-  case Intrinsic::memset_element_unordered_atomic:
-// Flush the local value map just like we do for regular calls,
-// to avoid excessive spills and reloads.
-// These intrinsics mostly turn into library calls at O0; and
-// even memcpy_inline should be treated like one for this purpose.
-flushLocalValueMap();
-break;
   }
 
   return fastLowerIntrinsicCall(II);



___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] dc35368 - Remove static function unused after cf1c774.

2020-11-25 Thread Paul Robinson via llvm-branch-commits

Author: Paul Robinson
Date: 2020-11-25T13:43:06-05:00
New Revision: dc35368ccf17a7dca0874ace7490cc3836fb063f

URL: 
https://github.com/llvm/llvm-project/commit/dc35368ccf17a7dca0874ace7490cc3836fb063f
DIFF: 
https://github.com/llvm/llvm-project/commit/dc35368ccf17a7dca0874ace7490cc3836fb063f.diff

LOG: Remove static function unused after cf1c774.

Caused some -Werror bot failures.

Added: 


Modified: 
llvm/lib/CodeGen/SelectionDAG/FastISel.cpp

Removed: 




diff  --git a/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp 
b/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
index 3d935bb0077e..2d3ec0a0367f 100644
--- a/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
@@ -223,21 +223,6 @@ void FastISel::flushLocalValueMap() {
   LastFlushPoint = FuncInfo.InsertPt;
 }
 
-static bool isTerminatingEHLabel(MachineBasicBlock *MBB, MachineInstr &MI) {
-  // Ignore non-EH labels.
-  if (!MI.isEHLabel())
-return false;
-
-  // Any EH label outside a landing pad must be for an invoke. Consider it a
-  // terminator.
-  if (!MBB->isEHPad())
-return true;
-
-  // If this is a landingpad, the first non-phi instruction will be an 
EH_LABEL.
-  // Don't consider that label to be a terminator.
-  return MI.getIterator() != MBB->getFirstNonPHI();
-}
-
 bool FastISel::hasTrivialKill(const Value *V) {
   // Don't consider constants or arguments to have trivial kills.
   const Instruction *I = dyn_cast(V);



___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] a474657 - [FastISel] NFC: Remove obsolete -fast-isel-sink-local-values option

2020-11-30 Thread Paul Robinson via llvm-branch-commits

Author: Paul Robinson
Date: 2020-11-30T10:55:49-08:00
New Revision: a474657e30edccd9e175d92bddeefcfa544751b2

URL: 
https://github.com/llvm/llvm-project/commit/a474657e30edccd9e175d92bddeefcfa544751b2
DIFF: 
https://github.com/llvm/llvm-project/commit/a474657e30edccd9e175d92bddeefcfa544751b2.diff

LOG: [FastISel] NFC: Remove obsolete -fast-isel-sink-local-values option

This option is not used for anything after #dc35368 (D91734).

Added: 


Modified: 
llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
llvm/test/CodeGen/AArch64/arm64-abi_align.ll
llvm/test/CodeGen/AArch64/arm64-fast-isel-call.ll
llvm/test/CodeGen/AArch64/arm64-fast-isel-gv.ll
llvm/test/CodeGen/AArch64/arm64-fast-isel-intrinsic.ll
llvm/test/CodeGen/AArch64/arm64-fast-isel.ll
llvm/test/CodeGen/AArch64/arm64-patchpoint-webkit_jscc.ll
llvm/test/CodeGen/AArch64/swifterror.ll
llvm/test/CodeGen/ARM/fast-isel-call.ll
llvm/test/CodeGen/ARM/fast-isel-intrinsic.ll
llvm/test/CodeGen/ARM/fast-isel-select.ll
llvm/test/CodeGen/ARM/fast-isel-vararg.ll
llvm/test/CodeGen/ARM/swifterror.ll
llvm/test/CodeGen/Mips/Fast-ISel/callabi.ll
llvm/test/CodeGen/Mips/Fast-ISel/simplestore.ll
llvm/test/CodeGen/Mips/Fast-ISel/simplestorei.ll
llvm/test/CodeGen/X86/avx512-mask-zext-bugfix.ll
llvm/test/CodeGen/X86/bmi-intrinsics-fast-isel.ll
llvm/test/CodeGen/X86/fast-isel-call-cleanup.ll
llvm/test/CodeGen/X86/inreg.ll
llvm/test/CodeGen/X86/pr32241.ll
llvm/test/CodeGen/X86/pr32284.ll
llvm/test/CodeGen/X86/pr32340.ll
llvm/test/CodeGen/X86/pr32345.ll
llvm/test/CodeGen/X86/pr32484.ll
llvm/test/CodeGen/X86/sink-local-value.ll
llvm/test/CodeGen/X86/sse-intrinsics-fast-isel.ll
llvm/test/DebugInfo/Mips/delay-slot.ll
llvm/test/DebugInfo/X86/prologue-stack.ll

Removed: 




diff  --git a/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp 
b/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
index 2d3ec0a0367f..7615861149c6 100644
--- a/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
@@ -113,11 +113,6 @@ using namespace PatternMatch;
 
 #define DEBUG_TYPE "isel"
 
-// FIXME: Remove this after the feature has proven reliable.
-static cl::opt SinkLocalValues("fast-isel-sink-local-values",
- cl::init(true), cl::Hidden,
- cl::desc("Sink local values in 
FastISel"));
-
 STATISTIC(NumFastIselSuccessIndependent, "Number of insts selected by "
  "target-independent selector");
 STATISTIC(NumFastIselSuccessTarget, "Number of insts selected by "

diff  --git a/llvm/test/CodeGen/AArch64/arm64-abi_align.ll 
b/llvm/test/CodeGen/AArch64/arm64-abi_align.ll
index fe0b31fb2db9..5224eca76619 100644
--- a/llvm/test/CodeGen/AArch64/arm64-abi_align.ll
+++ b/llvm/test/CodeGen/AArch64/arm64-abi_align.ll
@@ -1,5 +1,5 @@
-; RUN: llc -fast-isel-sink-local-values -aarch64-load-store-renaming=true < %s 
-mtriple=arm64-apple-darwin -mcpu=cyclone -enable-misched=false 
-frame-pointer=all | FileCheck %s
-; RUN: llc -fast-isel-sink-local-values -aarch64-load-store-renaming=true  < 
%s -mtriple=arm64-apple-darwin -O0 -frame-pointer=all -fast-isel | FileCheck 
-check-prefix=FAST %s
+; RUN: llc -aarch64-load-store-renaming=true < %s -mtriple=arm64-apple-darwin 
-mcpu=cyclone -enable-misched=false -frame-pointer=all | FileCheck %s
+; RUN: llc -aarch64-load-store-renaming=true  < %s -mtriple=arm64-apple-darwin 
-O0 -frame-pointer=all -fast-isel | FileCheck -check-prefix=FAST %s
 
 ; rdar://12648441
 ; Generated from arm64-arguments.c with -O2.

diff  --git a/llvm/test/CodeGen/AArch64/arm64-fast-isel-call.ll 
b/llvm/test/CodeGen/AArch64/arm64-fast-isel-call.ll
index a677d4a14353..9b9eb8d29bed 100644
--- a/llvm/test/CodeGen/AArch64/arm64-fast-isel-call.ll
+++ b/llvm/test/CodeGen/AArch64/arm64-fast-isel-call.ll
@@ -1,6 +1,6 @@
-; RUN: llc -fast-isel-sink-local-values -O0 -fast-isel -fast-isel-abort=2 
-code-model=small -verify-machineinstrs -frame-pointer=all 
-mtriple=arm64-apple-darwin   < %s | FileCheck %s
-; RUN: llc -fast-isel-sink-local-values -O0 -fast-isel -fast-isel-abort=2 
-code-model=large -verify-machineinstrs -frame-pointer=all 
-mtriple=arm64-apple-darwin   < %s | FileCheck %s --check-prefix=LARGE
-; RUN: llc -fast-isel-sink-local-values -O0 -fast-isel -fast-isel-abort=2 
-code-model=small -verify-machineinstrs -frame-pointer=all 
-mtriple=aarch64_be-linux-gnu < %s | FileCheck %s --check-prefix=CHECK-BE
+; RUN: llc -O0 -fast-isel -fast-isel-abort=2 -code-model=small 
-verify-machineinstrs -frame-pointer=all -mtriple=arm64-apple-darwin   < %s | 
FileCheck %s
+; RUN: llc -O0 -fast-isel -fast-isel-abort=2 -code-model=large 
-verify-machineinstrs -frame-pointer=all -mtriple=arm64-apple-darwin   < %s | 
FileCheck %s --check-prefix=LARGE
+; RUN: llc -O0 -fast-isel -fast-isel-abort=2 -

[llvm-branch-commits] [cfe-branch] r338892 - Release note for DWARF v5 support

2018-08-03 Thread Paul Robinson via llvm-branch-commits
Author: probinson
Date: Fri Aug  3 07:05:11 2018
New Revision: 338892

URL: http://llvm.org/viewvc/llvm-project?rev=338892&view=rev
Log:
Release note for DWARF v5 support

Modified:
cfe/branches/release_70/docs/ReleaseNotes.rst

Modified: cfe/branches/release_70/docs/ReleaseNotes.rst
URL: 
http://llvm.org/viewvc/llvm-project/cfe/branches/release_70/docs/ReleaseNotes.rst?rev=338892&r1=338891&r2=338892&view=diff
==
--- cfe/branches/release_70/docs/ReleaseNotes.rst (original)
+++ cfe/branches/release_70/docs/ReleaseNotes.rst Fri Aug  3 07:05:11 2018
@@ -50,6 +50,12 @@ Major New Features
   was added. Please refer to the :ref:`release-notes-ubsan` section of the
   release notes for the details.
 
+- Preliminary/experimental support for DWARF v5 debugging information. If you
+  compile with ``-gdwarf-5 -O0`` you should get fully conforming DWARF v5
+  information, including the new .debug_names accelerator table. Type units
+  and split DWARF are known not to conform, and higher optimization levels
+  will likely get a mix of v4 and v5 formats.
+  
 Improvements to Clang's diagnostics
 ^^^
 


___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm-branch] r338891 - Release note for DWARF v5 support

2018-08-03 Thread Paul Robinson via llvm-branch-commits
Author: probinson
Date: Fri Aug  3 07:04:59 2018
New Revision: 338891

URL: http://llvm.org/viewvc/llvm-project?rev=338891&view=rev
Log:
Release note for DWARF v5 support

Modified:
llvm/branches/release_70/docs/ReleaseNotes.rst

Modified: llvm/branches/release_70/docs/ReleaseNotes.rst
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_70/docs/ReleaseNotes.rst?rev=338891&r1=338890&r2=338891&view=diff
==
--- llvm/branches/release_70/docs/ReleaseNotes.rst (original)
+++ llvm/branches/release_70/docs/ReleaseNotes.rst Fri Aug  3 07:04:59 2018
@@ -109,6 +109,12 @@ Non-comprehensive list of changes in thi
   it's now a better choice even on the heap (although when TinyPtrVector works,
   it's even smaller).
 
+* Preliminary/experimental support for DWARF v5 debugging information,
+  including the new .debug_names accelerator table. DWARF emitted at ``-O0``
+  should be fully DWARF v5 compliant. Type units and split DWARF are known
+  not to be compliant, and higher optimization levels will still emit some
+  information in v4 format.
+
 * Note..
 
 .. NOTE


___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits