Skip to content

Instantly share code, notes, and snippets.

Total executed opcodes 305590200
11% Opcounts 34261110, calls 81900, Method System.Text.Json.JsonWriterHelper:ToUtf8 (System.ReadOnlySpan`1<byte>,System.Span`1<byte>,int&,int&), imethod ptr 0x55f2d503d870
22% Opcounts 33980080, calls 849502, Method System.Text.ASCIIUtility:WidenFourAsciiBytesToUtf16AndWriteToBuffer (char&,uint), imethod ptr 0x55f2d4d9ce08
29% Opcounts 23040810, calls 81900, Method System.Text.Encodings.Web.DefaultJavaScriptEncoderBasicLatin:FindFirstCharacterToEncode (char*,int), imethod ptr 0x55f2d5038218
36% Opcounts 20590344, calls 1715862, Method System.ReadOnlySpan`1<byte>:.ctor (void*,int), imethod ptr 0x55f2d4d3fee0
43% Opcounts 19605240, calls 1633770, Method System.Text.Encodings.Web.DefaultJavaScriptEncoderBasicLatin:NeedsEscaping (char), imethod ptr 0x55f2d503cc20
49% Opcounts 19539627, calls 13, Method System.Text.ASCIIUtility:WidenAsciiToUtf16 (byte*,char*,uintptr), imethod ptr 0x55f2d4d9cd38
54% Opcounts 16052400, calls 327600, Method System.Memory`1<byte>:get_Span (), imethod p
v8 - execution time 5.9s
- switch dispatch
-- B4 start (loop up to 16) --
0x11917e11c721 a1 48895588 REX.W movq [rbp-0x78],rdx
0x11917e11c725 a5 488b5623 REX.W movq rdx,[rsi+0x23]
0x11917e11c729 a9 48895dd8 REX.W movq [rbp-0x28],rbx
0x11917e11c72d ad 48897dd0 REX.W movq [rbp-0x30],rdi
0x11917e11c731 b1 4c8945c8 REX.W movq [rbp-0x38],r8
0x11917e11c735 b5 4c894dc0 REX.W movq [rbp-0x40],r9
0x11917e11c739 b9 4c895db8 REX.W movq [rbp-0x48],r11
v8
- switch dispatch
0x255a37a8b314 534 4889bd38ffffff REX.W movq [rbp-0xc8],rdi
0x255a37a8b31b 53b 488b7e23 REX.W movq rdi,[rsi+0x23]
0x255a37a8b31f 53f 4c8965d0 REX.W movq [rbp-0x30],r12
0x255a37a8b323 543 48899d48ffffff REX.W movq [rbp-0xb8],rbx
0x255a37a8b32a 54a 48895588 REX.W movq [rbp-0x78],rdx
0x255a37a8b32e 54e 483b27 REX.W cmpq rsp,[rdi]
0x255a37a8b331 551 0f86ce1a0100 jna 0x255a37a9ce05 <+0x12025>
0x255a37a8b337 557 4489e7 movl rdi,r12
gcc:
- switch dispatch
1398f0: 41 0f b7 55 00 movzwl 0x0(%r13),%edx
1398ff: 66 81 fa ab 02 cmp $0x2ab,%dx
139904: 0f 87 34 94 00 00 ja 142d3e <interp_exec_method+0x96ae>
13990a: 48 8d 35 27 25 21 00 lea 0x212527(%rip),%rsi # 34be38 <__func__.31203+0x1508>
139911: 0f b7 c2 movzwl %dx,%eax
139914: 48 63 04 86 movslq (%rsi,%rax,4),%rax
139918: 48 01 f0 add %rsi,%rax
13991b: ff e0 jmpq *%rax
using System;
using System.Linq;
using System.Numerics;
using System.Runtime.InteropServices;
using System.Diagnostics;
class Program {
static void Main () {
const int iterations = Benchmark.IterationCount,
warming_iterations = Benchmark.WarmingIterationCount;
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0. Program arguments: /opt/compiler-explorer/clang-trunk/bin/clang++ -g -o ./output.s -S -target wasm32 -fcolor-diagnostics -fno-crash-diagnostics -O2 <source>
1. <eof> parser at end of file
2. Code generation
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdint.h>
typedef int gint;
typedef unsigned int guint;
typedef short gint16;
typedef unsigned short guint16;
typedef long glong;
// Global variable
#define mono_break() variable = 0x6666
volatile int variable;
// interp_exec_method_switch
case MINT_LDARGFLD_I8: {
mono_break ();
gpointer *o = frame->stack_args [ip [1]].data.p;
if (!o)
@BrzVlad
BrzVlad / hello.cs
Created November 18, 2019 16:15
GC Prototype testcase
// Simple testcase for verifying basic GC functionality
// (allocation, collection, root scanning, object scanning, write barriers)
using System;
using System.Collections.Generic;
public class Program {
public string s;
public static List<Program> list = new List<Program> ();
@BrzVlad
BrzVlad / fix
Created September 28, 2019 08:27
diff --git a/mono/utils/mono-threads-coop.c b/mono/utils/mono-threads-coop.c
index 28bf12c..dacaa1d 100644
--- a/mono/utils/mono-threads-coop.c
+++ b/mono/utils/mono-threads-coop.c
@@ -314,12 +314,15 @@ mono_threads_enter_gc_safe_region_unbalanced (gpointer *stackpointer)
return mono_threads_enter_gc_safe_region_unbalanced_internal (&stackdata);
}
-static MONO_NO_OPTIMIZATION gpointer
+static gpointer