joaosaffran wrote:

After investigating a little further:


If validation is disabled, that leads to 2 actions being created. Otherwise, 
validation is enabled, it creates 3 actions in the driver, that means that 
without validation only emits 1 intermediary object, meanwhile, with validation 
emits 2. In this section of the code 
[https://github.com/llvm/llvm-project/blob/79d1524bde4c0253b349304e70716c3fb4f7193e/clang/lib/Driver…](https://github.com/llvm/llvm-project/blob/79d1524bde4c0253b349304e70716c3fb4f7193e/clang/lib/Driver/Driver.cpp#L62-64)
 We handle the root signature objcopy flags, the files are handled differently 
if it is the last job or not. If it is not the last job, we create a temporary 
file, according to the job we are handling, the first 2 are object jobs, 
therefore they use the extension obj. If validation is enabled, since the 
second job is the last one, it doesn't create another temporary file, instead 
it uses the value associated with /Fo arg
 
Here is the response in this 2 scenarios:
 
 ```
WITHOUT VALIDATION:
"/home/jderezende/llvm-project/build/bin/llvm-objcopy" 
"/tmp/dxc_frs-8879c7.obj" 
"/home/jderezende/llvm-project/build/tools/clang/test/Driver/Output/dxc_frs.hlsl.tmp.dxo"
 
"--extract-section=RTS0=/home/jderezende/llvm-project/build/tools/clang/test/Driver/Output/dxc_frs.hlsl.tmp.rs.dxo"

WITH VALIDATION:
"/home/jderezende/llvm-project/build/bin/llvm-objcopy" 
"/tmp/dxc_frs-e01b84.obj" "/tmp/dxc_frs-3308ab.obj" 
"--extract-section=RTS0=/home/jderezende/llvm-project/build/tools/clang/test/Driver/Output/dxc_frs.hlsl.tmp.rs.dxo"
```

I think the fix will need another approach, other than change the test.... 

https://github.com/llvm/llvm-project/pull/161566
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to