- Dec 21, 2020
-
-
Fangrui Song authored
-
Fangrui Song authored
Errors from MCAssembler, MCObjectStreamer and *ObjectWriter typically cause a crash: ``` % cat c.c int bar; extern int foo __attribute__((alias("bar"))); % clang -c -fcommon c.c fatal error: error in backend: Common symbol 'bar' cannot be used in assignment expr PLEASE submit a bug report to ... Stack dump: ... ``` `LLVMTargetMachine::addPassesToEmitFile` constructs `MachineModuleInfoWrapperPass` which creates a MCContext without SourceMgr. `MCContext::reportError` calls `report_fatal_error` which gets captured by Clang `LLVMErrorHandler` and gets translated to the output above. Since `MCContext::reportError` errors indicate user errors, such a crashing style error is inappropriate. So this patch changes `report_fatal_error` to `SourceMgr().PrintMessage`. ``` % clang -c -fcommon c.c <unknown>:0: error: Common symbol 'bar' cannot be used in assignment expr ``` Ideally we should at least recover the original filename (the line information is generally lost). That requires general improvement to MC diagnostics, because currently in many cases SMLoc information is lost. -
Pushpinder Singh authored
Fast register allocator skips bundled MIs, as the main assignment loop uses MachineBasicBlock::iterator (= MachineInstrBundleIterator) This was causing SIInsertWaitcnts to crash which expects all instructions to have registers assigned. This patch makes sure to set everything inside bundle to the same assignments done on BUNDLE header. Reviewed By: qcolombet Differential Revision: https://reviews.llvm.org/D90369
-
Monk Chiang authored
This patch base on D93366, and define vector fixed-point intrinsics. 1. vaaddu/vaadd/vasubu/vasub 2. vsmul 3. vssrl/vssra 4. vnclipu/vnclip We work with @rogfer01 from BSC to come out this patch. Authored-by:Roger Ferrer Ibanez <rofirrim@gmail.com> Co-Authored-by:
ShihPo Hung <shihpo.hung@sifive.com> Differential Revision: https://reviews.llvm.org/D93508
-
Jian Cai authored
Currently the integrated assembler only allows commas as the separator between string arguments in .ascii. This patch adds support to using space as separators and make IAS consistent with GNU assembler. Link: https://github.com/ClangBuiltLinux/linux/issues/1196 Reviewed By: nickdesaulniers, jrtc27 Differential Revision: https://reviews.llvm.org/D91460
-
Esme-Yi authored
-
Fangrui Song authored
ELF code uses symbol bindings and does not call isExternal().
-
Esme-Yi authored
Summary: Some constants can be handled with less instructions than our current results. And it seems our original approach is not very easy to extend. Therefore this patch proposes to materialize all 64-bit constants by enumerated patterns. I traversed almost all constants to verified the functionality of these pattens. A traversed comparison of the number of instructions used by the original method and the new method has also been completed, where no degradation was caused by this patch. This patch also passed Bootstrap test and SPEC test. Improvements of this patch are shown in llvm/test/CodeGen/PowerPC/constants-i64.ll Reviewed By: steven.zhang, stefanp Differential Revision: https://reviews.llvm.org/D92089
-
Fangrui Song authored
ELF uses symbol bindings and MCSymbol::isExternal is not really useful. The function is no longer used in ELF code now.
-
Fangrui Song authored
-
Fangrui Song authored
`CHECK-FINAL-NOT: global` can match the input filename (e.g. clang-cmake-aarch64-global-isel) and fail spuriously.
-
Fangrui Song authored
-
Fangrui Song authored
This relands D64327 with a more specific workaround for R_386_GOTOFF (gold<2.34 bug https://sourceware.org/bugzilla/show_bug.cgi?id=16794) .debug_info has quite a few .debug_str relocations (R_386_32/R_ARM_ABS32). The original workaround was too general and introduced too many .L symbols used just as relocation targets. From the original review: ... it reduced the size of a big ARM-32 debug image by 33%. It contained ~68M of relocations symbols out of total ~71M symbols (96% of symbols table was generated for relocations with symbol).
-
Ben Shi authored
Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D93589
-
Kazu Hirata authored
-
Arthur Eubanks authored
Requires x86 target to be registered.
-
Chen Zheng authored
This patch does two things: 1: fix the typo that intrinsic mfvscr should be with no readmem property 2: since VSCR is not modeled yet, add has side effect for SAT bit clobber intrinsics/instructions. Reviewed By: steven.zhang Differential Revision: https://reviews.llvm.org/D90807
-
Chen Zheng authored
Fixup dead flags for CSE-ed instructions. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D92557
-
Arthur Eubanks authored
The -O2 isn't used in the test.
-
Shilei Tian authored
[OpenMP] Fixed the issue that CMake variables for OpenMP were not passed through when building OpenMP with LLVM_ENABLE_RUNTIMES Currently when building OpenMP along with LLVM, CMake variables for OpenMP (prefix with `LIBOMP` and `LIBOMPTARGET`) will not be passed through because by default it uses the prefix of the runtime name, aka `OPENMP` in this case. This patch fixed this issue. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D93603
-
Fangrui Song authored
This is consistent with the resolution to power-of-2 alignments. Otherwise, emitCodeAlignment and emitValueToAlignment cannot handle alignments larger than 2**32 and will trigger assertion failure (PR35218). Note: GNU as as of 2.35 will use 1 for such a large byte `.align`
-
Samuel Eubanks authored
Currently there is an issue where the legacy pass manager uses a different OptBisect counter than the new pass manager. This fix makes the npm OptBisectInstrumentation use the global OptBisect. Reviewed By: aeubanks Differential Revision: https://reviews.llvm.org/D92897
-
David Green authored
-
Nikita Popov authored
-
Jez Ng authored
Also remove iteration over ArchiveFile symbols in buildInputSectionPriorities -- that was rendered unnecessary after D92539, which included ObjFiles from ArchiveFiles inside the `inputFiles` vector. Reviewed By: #lld-macho, smeenai Differential Revision: https://reviews.llvm.org/D93569
-
Jez Ng authored
Obj-C symbols may have spaces and colons, which our previous order file parser would be confused by. The order file format has made the very unfortunate choice of using colons for its delimiters, which means that we have to use heuristics to determine if a given colon is part of a symbol or not... Reviewed By: #lld-macho, thakis Differential Revision: https://reviews.llvm.org/D93567
-
Jez Ng authored
Makes it much easier to edit / maintain. Reviewed By: #lld-macho, smeenai Differential Revision: https://reviews.llvm.org/D93566
-
Fangrui Song authored
This should fix: Failed Tests (2): LLVM-Unit :: Object/./ObjectTests/ELFObjectFileTest.InvalidSymbolTest LLVM :: tools/llvm-readobj/ELF/relocation-errors.test
-
Kazu Hirata authored
This patch removes InstrumentFuncEntry as it is dead. The constructor of FuncPGOInstrumentation passes InstrumentFuncEntry to MST, but it doesn't make a local copy as a member variable.
-
Kazu Hirata authored
-
Nikita Popov authored
-
- Dec 20, 2020
-
-
ShihPo Hung authored
Differential Revision: https://reviews.llvm.org/D93286
-
Simon Pilgrim authored
Add missing llvm_unreachable()'s after each all-enums switch statement.
-
Chris Warner authored
Modify the cppcoreguidelines-pro-type-member-init checker to ignore warnings from the move and copy-constructors when they are compiler defined with `= default` outside of the type declaration. Reported as [LLVM bug 36819](https://bugs.llvm.org/show_bug.cgi?id=36819) Reviewed By: malcolm.parsons Differential Revision: https://reviews.llvm.org/D93333
-
Michał Górny authored
-
Hsiangkai Wang authored
Define vector vfwmul intrinsics and lower them to V instructions. We work with @rogfer01 from BSC to come out this patch. Authored-by:
Roger Ferrer Ibanez <rofirrim@gmail.com> Co-Authored-by:
Hsiangkai Wang <kai.wang@sifive.com> Differential Revision: https://reviews.llvm.org/D93584
-
Hsiangkai Wang authored
Define vector vfwadd/vfwsub intrinsics and lower them to V instructions. We work with @rogfer01 from BSC to come out this patch. Authored-by:
Roger Ferrer Ibanez <rofirrim@gmail.com> Co-Authored-by:
Hsiangkai Wang <kai.wang@sifive.com> Differential Revision: https://reviews.llvm.org/D93583
-
Hsiangkai Wang authored
Define vector vfsgnj/vfsgnjn/vfsgnjx intrinsics and lower them to V instructions. We work with @rogfer01 from BSC to come out this patch. Authored-by:
Roger Ferrer Ibanez <rofirrim@gmail.com> Co-Authored-by:
Hsiangkai Wang <kai.wang@sifive.com> Differential Revision: https://reviews.llvm.org/D93581
-
Hsiangkai Wang authored
Define vector vfmul/vfdiv/vfrdiv intrinsics and lower them to V instructions. We work with @rogfer01 from BSC to come out this patch. Authored-by:
Roger Ferrer Ibanez <rofirrim@gmail.com> Co-Authored-by:
Hsiangkai Wang <kai.wang@sifive.com> Differential Revision: https://reviews.llvm.org/D93580
-
Pavel Labath authored
It works, and it should be more stable than forward connections.
-