- Feb 07, 2020
-
-
serge_sans_paille authored
Implement protection against the stack clash attack [0] through inline stack probing. Probe stack allocation every PAGE_SIZE during frame lowering or dynamic allocation to make sure the page guard, if any, is touched when touching the stack, in a similar manner to GCC[1]. This extends the existing `probe-stack' mechanism with a special value `inline-asm'. Technically the former uses function call before stack allocation while this patch provides inlined stack probes and chunk allocation. Only implemented for x86. [0] https://www.qualys.com/2017/06/19/stack-clash/stack-clash.txt [1] https://gcc.gnu.org/ml/gcc-patches/2017-07/msg00556.html This a recommit of 39f50da2 with correct option flags set. Differential Revision: https://reviews.llvm.org/D68720
-
MaheshRavishankar authored
The initial implementation of the fusion operation exposes a method to fuse a consumer with its producer, when - both the producer and consumer operate on tensors - the producer has only a single result value - the producer has only "parallel" iterator types A new interface method hasTensorSemantics is added to verify that an operation has all operands and results of type RankedTensorType. Differential Revision: https://reviews.llvm.org/D74172
-
Sean Fertile authored
hasReservedSpillSlot returns a dummy frame index of '0' on PPC64 for the non-volatile condition registers, which leads to the CalleSavedInfo either referencing an unrelated stack object, or an invalid object if there are no stack objects. The latter case causes the mir-printer to crash due to assertions that checks if the frame index referenced by a CalleeSavedInfo is valid. To fix the problem create an immutable FixedStack object at the correct offset in the linkage area of the previous stack frame (ie SP + positive offset). Differential Revision: https://reviews.llvm.org/D73709
-
Craig Topper authored
Previously we took the restored flag in a GPR, extended it 32 or 64 bits. Then used as an input to a sub from 0. This requires creating a zero extend and creating a 0. This patch changes this to just use an ADD with 255 to restore the carry flag and keep the SETB_C32r/SETB_C64r. Exactly like we handle SBB which is what SETB becomes. Differential Revision: https://reviews.llvm.org/D74152
-
Jay Foad authored
Summary: This is a rework of D72611, using @LINE to check that errors are reported against the right instruction instead of adding lots of extra *-ERR-NEXT: check lines. Reviewers: rampitec, arsenm, nhaehnle Subscribers: kzhuravl, jvesely, wdng, yaxunl, dstuttard, tpr, t-tye, kerbowa, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D74227
-
Michael Liao authored
patch from Philippe Daouadi <blastrock@free.fr> This is an attempt to fix [PR#44368](https://bugs.llvm.org/show_bug.cgi?id=44368) This effectively reverts [D1783](https://reviews.llvm.org/D1783). It doesn't break the current tests and fixes the test that this commit adds. We now decide of a lambda linkage only depending on the visibility of its parent context. Differential Revision: https://reviews.llvm.org/D73701
-
Matt Arsenault authored
-
Vedant Kumar authored
Add the isCandidateForCallSiteEntry predicate to MachineInstr to determine whether a DWARF call site entry should be created for an instruction. For now, it's enough to have any call instruction that doesn't belong to a blacklisted set of opcodes. For these opcodes, a call site entry isn't meaningful. Differential Revision: https://reviews.llvm.org/D74159
-
Pavel Labath authored
Summary: There's a fair amount of code duplication between the different ABI plugins for the same architecture (e.g. ABIMacOSX_arm & ABISysV_arm). Deduplicating this code is not very easy at the moment because there is no good place where to put the common code. Instead of creating more plugins, this patch reduces their number by grouping similar plugins into a single folder/plugin. This makes it easy to extract common code to a (e.g.) base class, which can then live in the same folder. The grouping is done based on the underlying llvm target for that architecture, because the plugins already require this for their operation. Reviewers: JDevlieghere, jasonmolenda, jfb Subscribers: sdardis, nemanjai, mgorny, kristof.beyls, fedor.sergeev, kbarton, jrtc27, atanasyan, jsji, lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D74138
-
Med Ismail Bennani authored
This patch skips the AssertFrameRecognizer test for Linux since it appears to fail on certain distributions (AFAIK Fedora & ArchLinux). The failure happen because the thread don't set the current frame to the most relevant one. So the stopped location doesn't match with what the test is expecting. The test will be enabled again after I'll be able to reproduce the failure on one of those platform and fix the issue. Signed-off-by:
Med Ismail Bennani <medismail.bennani@gmail.com>
-
Fangrui Song authored
The revert of D73542 (c2900381) deleted the newly added tests to arm-thumb-interwork-shared.s . We should keep them.
-
Petar Avramovic authored
Allows more flexible use of buildMerge in places where use operands are available as SrcOp since it does not require explicit conversion to Register. Simplify code with new buildMerge. Differential Revision: https://reviews.llvm.org/D74223
-
Fangrui Song authored
When both little-endian and big-endian are tested, or both 32-bit and 64-bit are tested, use a template like the following with `-D BITS=32 -D ENCODE=LSB` ``` --- !ELF FileHeader: Class: ELFCLASS[[BITS]] Data: ELFDATA2[[ENCODE]] Type: ET_DYN Machine: EM_X86_64 ``` Reviewed By: grimar, jhenderson Differential Revision: https://reviews.llvm.org/D73828
-
Fangrui Song authored
Examples: ``` yaml2obj -D MACHINE=EM_386 a.yaml -o a.o yaml2obj -D MACHINE=0x1234 a.yaml -o a.o ``` where a.yaml contains: ``` --- !ELF FileHeader: Class: ELFCLASS64 Data: ELFDATA2MSB Type: ET_REL Machine: [[MACHINE]] ``` Reviewed By: grimar, jhenderson Differential Revision: https://reviews.llvm.org/D73821
-
aartbik authored
Summary: Lowering to LLVM IR was restricted to float/double. This CL also adds the integral values. Reviewers: andydavis1, nicolasvasilache, ftynse Reviewed By: nicolasvasilache, ftynse Subscribers: mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, nicolasvasilache, arpith-jacob, mgester, lucyrfox, liufengdb, Joonsoo, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D74179
-
Pavel Labath authored
It is unused.
-
Sanjay Patel authored
Noticed while scanning through debug spew. Creating unused nodes is inefficient and makes following the debug output harder.
-
Simon Pilgrim authored
As long as the FMA operation is legal (which we can proxy for the FMA3/FMA4 variants as well), we don't have to wait for the LegalOperations stage.
-
Amara Emerson authored
This is a one off special case, since actually implementing full inline asm support will be much more involved. This lets us compile a lot more code as a common simple case. Differential Revision: https://reviews.llvm.org/D74201
-
Michał Górny authored
Implement detection of ELF binary format, and support for i386 register context on amd64 when a 32-bit executable is being debugged. This is roughly based on the code from Linux. Differential Revision: https://reviews.llvm.org/D73974
-
Med Ismail Bennani authored
By clearing the recognizers before starting the test, we ensure that the recognizers that get initialized when lldb starts won't alter the expected results of this test (i.e. recognizer index). Signed-off-by:
Med Ismail Bennani <medismail.bennani@gmail.com>
-
Med Ismail Bennani authored
One way to register a recognizer is to use RegularExpressionSP for the module and symbol. In order to match a symbol regardless of the module, the recognizer can be registered with a nullptr for the module. However, this cause the frame recognizer list command to crash because it calls RegularExpression::GetText without checking if the shared pointer is valid. This patch adds checks for the symbol and module RegularExpressionSP. Differential Revision: https://reviews.llvm.org/D74212 Signed-off-by:
Med Ismail Bennani <medismail.bennani@gmail.com>
-
Nuno Lopes authored
-
Jinsong Ji authored
Printing floating point number in decimal is inconvenient for humans. Verbose asm output will print out floating point values in comments, it helps. But in lots of cases, users still need additional work to covert the decimal back to hex or binary to check the bit patterns, especially when there are small precision difference. Hexadecimal form is one of the supported form in LLVM IR, and easier for debugging. This patch try to print all FP constant in hex form instead. Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D73566
-
Miloš Stojanović authored
Followup to D74085. Replace the use of `report_fatal_error()` with returning the error to `llvm-exegesis.cpp` and handling it there. To facilitate this, a new `Error` type has been added which is only used to log errors to the yaml output. Differential Revision: https://reviews.llvm.org/D74215
-
Matt Arsenault authored
We were executing this in a waterfall loop as a placeholder, but this should really be converted to a MUBUF load. Also execute in a waterfall loop if the resource isn't an SGPR. This is a case where the DAG handling was wrong because doing the right thing was too hard. Currently, this will mishandle 96-bit loads. There's currently no way to track the original memory size with an MMO, so these loads will be widened andd the resulting memory size will be 128-bits.
-
Simon Tatham authored
Summary: The following example gives the error message "expected value of type 'bits<32>', got 'bit'" on the assignment. class Instruction { bits<32> encoding; } def foo: Instruction { let encoding{10} = !eq(0, 1); } But there's nothing wrong with this code: 'bit' is a perfectly good type for the RHS of an assignment to a //single bit// of an instruction encoding. The problem is that `ParseBodyItem` is accidentally type-checking the RHS against the full type of the `encoding` field, without adjusting it in the case where we're only assigning to a subset of the bits. The fix is trivial. Reviewers: nhaehnle, hfinkel Reviewed By: hfinkel Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D74220
-
Matt Arsenault authored
The result type is separate from the source type. Tests will be included in a future AMDGPU patch which uses this from RegBankSelect/applyMappingImpl.
-
Matt Arsenault authored
The type passed to lower was invalid, so I'm not sure how this was even working before. The source and destination type also do not have to match, so make sure to use the right ones.
-
Alexandre Ganea authored
Re-land "[Clang][Driver] Remove -M group options ..." and "[Clang] Avoid crashing when generating crash diagnostics when '#pragma clang __debug ..." This re-lands commits f41ec709 (https://reviews.llvm.org/D74076) and commit 5fedc2b4 (https://reviews.llvm.org/D74070) The previous build break was caused by '#pragma clang __debug llvm_unreachable' used in a non-assert build. Move it to a separate test in crash-report-with-asserts.c.
-
Alexey Bataev authored
Added basic support (representation + parsing/sema/(de)serialization) for acq_rel clause in flush/atomic directives.
-
Sam Parker authored
-
OuHangKresnik authored
Add NoSideEffect to Affine min and max operations. Differential Revision: https://reviews.llvm.org/D74203
-
Nico Weber authored
There are still problems after the fix in "[ELF][ARM] Fix regression of BL->BLX substitution after D73542" so let's revert to get trunk back to green while we investigate. See https://reviews.llvm.org/D73542 This reverts commit 5461fa2b. This reverts commit 0b4a047b.
-
Sam Parker authored
-
LLVM GN Syncbot authored
-
Miloš Stojanović authored
Summary: Commit 14191596 was reverted in abe01e17 because it broke builds testing without libpfm. A preparatory commit <commit_sha1> was added to enable this recommit. Original commit message: Followup to D74085. Replace the use of `report_fatal_error()` with returning the error to `llvm-exegesis.cpp` and handling it there. Differential Revision: https://reviews.llvm.org/D74113
-
Miloš Stojanović authored
Summary: Commit b3576f60 was reverted in abe01e17 because it broke builds testing without libpfm. A preparatory commit <commit_sha1> was added to enable this recommit. Original commit message: Fix inconsistencies in error reporting created by mixing `report_fatal_error()` and `ExitOnErr()`, and add additional information to the error message to make it more user friendly. Minimize the use `report_fatal_error()` because it's meant for use in very rare cases and it results in low information density of the error messages. Summary of the new design: * For command line argument errors output `llvm-exegesis: <error_message>`, which is consistent with the error output format emitted by the backend which checks correctness of the command line arguments. * For other errors the format `llvm-exegesis error: <error_message>` is used. ** If the error occurred during file access `<error_message>` will have of two parts: `'<file_name>': <rest_of_the_error_message>` Differential Revision: https://reviews.llvm.org/D74085
-
Miloš Stojanović authored
All errors of type `Failure` are `StringError`s. In order for exit code mapping to detect that specifically a clustering error has occurred it needs to have a different type. This patch also prepares D74085 where termination `report_fatal_error()` will be replaced with emitting `StringError`s. Differential Revision: https://reviews.llvm.org/D74124
-
Dmitry Preobrazhensky authored
Summary of changes: - updated description of gfx906 and gfx908; - added description of gfx1011 and gfx1012 subtargets.
-