[clang] [llvm] target ABI: improve call parameters extensions handling (PR #100757)

Jonas Paulsson via cfe-commits cfe-commits at lists.llvm.org
Thu Aug 22 08:21:37 PDT 2024


JonPsson1 wrote:

Patch updated per @nikic suggestion to use a TargetOption flag to simply disable this for llc.

With all the llc lit tests out of the way, I now see:
- 1 test failing in CodeGenObjC
- failing tests in clang/test/Interpreter
- failing tetss in llvm/test/ExecutionEngine/Orc/./OrcJITTests.

Not sure if these tools should also "do their job" and actually be fixed, like clang? Or are these also llc-like in the sense that they are only used internally by llvm developers? For the Objective-C test, not sure if this maybe could be disabled for SystemZ at least? 

These would pass with something like:
```

--- a/clang/lib/CodeGen/BackendUtil.cpp
+++ b/clang/lib/CodeGen/BackendUtil.cpp
@@ -436,6 +436,8 @@ static bool initTargetOptions(DiagnosticsEngine &Diags,
   Options.Hotpatch = CodeGenOpts.HotPatch;
   Options.JMCInstrument = CodeGenOpts.JMCInstrument;
   Options.XCOFFReadOnlyPointers = CodeGenOpts.XCOFFReadOnlyPointers;
+  if (LangOpts.ObjC)
+    Options.VerifyArgABICompliance = false;
 
   switch (CodeGenOpts.getSwiftAsyncFramePointer()) {
   case CodeGenOptions::SwiftAsyncFramePointerKind::Auto:


diff --git a/llvm/lib/ExecutionEngine/Orc/JITTargetMachineBuilder.cpp b/llvm/lib/ExecutionEngine/Orc/JITTargetMachineBuilder.cpp
index 8d4e79c7d8af..662c712c078f 100644
--- a/llvm/lib/ExecutionEngine/Orc/JITTargetMachineBuilder.cpp
+++ b/llvm/lib/ExecutionEngine/Orc/JITTargetMachineBuilder.cpp
@@ -20,6 +20,7 @@ JITTargetMachineBuilder::JITTargetMachineBuilder(Triple TT)
     : TT(std::move(TT)) {
   Options.EmulatedTLS = true;
   Options.UseInitArray = true;
+  Options.VerifyArgABICompliance = false;
 }


```


https://github.com/llvm/llvm-project/pull/100757


More information about the cfe-commits mailing list