Skip to content

Instantly share code, notes, and snippets.

View nickdesaulniers's full-sized avatar

Nick Desaulniers nickdesaulniers

View GitHub Profile
@nickdesaulniers
nickdesaulniers / regallocfast.g.mir
Created February 28, 2023 22:38
llc -run-pass=regallocfast regallocfast.g.mir -o - -verify-machineinstrs
--- |
; ModuleID = 'regallocfast.g.mir'
source_filename = "x.c"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
; Function Attrs: noinline nounwind optnone
define dso_local i32 @main() #0 !dbg !9 {
entry:
%retval = alloca i32, align 4
@nickdesaulniers
nickdesaulniers / maccess.i
Created February 6, 2023 23:54
powernv_defconfig
void strncpy_from_kernel_nofault_count() {
asm goto("" : "=r"(*(char *)0) : : : Efault);
Efault:
}
diff --git a/llvm/include/llvm/IR/Intrinsics.td b/llvm/include/llvm/IR/Intrinsics.td
index 475685d0857d..6090dee6f769 100644
--- a/llvm/include/llvm/IR/Intrinsics.td
+++ b/llvm/include/llvm/IR/Intrinsics.td
@@ -622,7 +622,8 @@ def int_call_preallocated_teardown : DefaultAttrsIntrinsic<[], [llvm_token_ty]>;
// This intrinsic is intentionally undocumented and users shouldn't call it;
// it's produced then quickly consumed during codegen.
-def int_callbr_landingpad : Intrinsic<[llvm_any_ty], [], [IntrNoMerge]>;
+def int_callbr_landingpad : Intrinsic<[llvm_any_ty], [LLVMMatchType<0>],
@nickdesaulniers
nickdesaulniers / 0.sh
Created June 22, 2022 20:25
perf report of clang with no input
perf record -e cycles:pp --call-graph lbr -- clang -Wfoo -c -x c /dev/null
perf report --no-children --sort=dso,symbol --total-cycles
diff --git a/init/Kconfig b/init/Kconfig
index e9119bf54b1f..fce97bfbe452 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -153,7 +153,7 @@ config WERROR
config UAPI_HEADER_TEST
bool "Compile test UAPI headers"
- depends on HEADERS_INSTALL && CC_CAN_LINK
+ depends on HEADERS_INSTALL
--- slab.before.clang.txt 2022-02-14 14:40:46.324688583 -0800
+++ slab.after.clang.bad.txt 2022-02-14 15:05:43.610957545 -0800
@@ -5,64 +5,57 @@
Disassembly of section .text:
<kmem_cache_free>:
+ push %rbp
+ mov %rsp,%rbp
push %r15
push %r14
--- slab.before.clang.txt 2022-02-14 14:40:46.324688583 -0800
+++ slab.after.clang.txt 2022-02-14 14:40:27.824562293 -0800
@@ -8,61 +8,51 @@
push %r15
push %r14
push %rbx
- sub $0x10,%rsp
- mov %gs:0x28,%rax
- mov %rax,0x8(%rsp)
test %rdi,%rdi
#!/usr/bin/env sh
function pretty_print() {
printf "%b%s\033[0m" "${1}" "${2}"
shift 2
while ((${#})); do
printf "%b" "${1}"
shift
done
printf '\n'
diff --git a/kernel/panic.c b/kernel/panic.c
index cefd7d82366f..f664d9682668 100644
--- a/kernel/panic.c
+++ b/kernel/panic.c
@@ -681,10 +681,11 @@ device_initcall(register_warn_debugfs);
*/
__visible noinstr void __stack_chk_fail(void)
{
- instrumentation_begin();
+begin:
diff --git a/arch/x86/include/asm/bug.h b/arch/x86/include/asm/bug.h
index 84b87538a15d..6e3433c64eae 100644
--- a/arch/x86/include/asm/bug.h
+++ b/arch/x86/include/asm/bug.h
@@ -22,7 +22,7 @@
#ifdef CONFIG_DEBUG_BUGVERBOSE
-#define _BUG_FLAGS(ins, flags) \
+#define _BUG_FLAGS(ins, flags, extra) \