- May 10, 2022
-
-
Ben Shi authored
Reviewed By: benshi001 Differential Revision: https://reviews.llvm.org/D125157
-
Ben Shi authored
Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D125210
-
Peter Klausler authored
In a function, ENTRY E without an explicit RESULT() creates a function result entity also named E that is storage associated with the enclosing function's result. f18 was emitting an incorrect error message if that function result E was referenced without any declaration prior to its ENTRY statement when it should have been implicitly declared instead. Differential Revision: https://reviews.llvm.org/D125144
-
Chuanqi Xu authored
Reviewed By: iains Differential Revision: https://reviews.llvm.org/D124149
-
Peter Klausler authored
As is already supported for dummy procedures, we need to also accept declarations of procedure pointers that consist of a POINTER attribute statement followed by an INTERFACE block. (The case of an INTERFACE block followed by a POINTER statement already works.) While cleaning this case up, adjust the utility predicate IsProcedurePointer() to recognize it (namely a SubprogramDetails symbol with Attr::POINTER) and delete IsProcName(). Extend tests, and add better comments to symbol.h to document the two ways in which procedure pointers are represented. Differential Revision: https://reviews.llvm.org/D125139
-
LLVM GN Syncbot authored
-
-
Mircea Trofin authored
This allows the compiler to support more features than those supported by a model. The only requirement (development mode only) is that the new features must be appended at the end of the list of features requested from the model. The support is transparent to compiler code: for unsupported features, we provide a valid buffer to copy their values; it's just that this buffer is disconnected from the model, so insofar as the model is concerned (AOT or development mode), these features don't exist. The buffers are allocated at setup - meaning, at steady state, there is no extra allocation (maintaining the current invariant). These buffers has 2 roles: one, keep the compiler code simple. Second, allow logging their values in development mode. The latter allows retraining a model supporting the larger feature set starting from traces produced with the old model. For release mode (AOT-ed models), this decouples compiler evolution from model e...
-
Peter Klausler authored
The semantic test for an intrinsic assignment to a polymorphic derived type entity from a type that is an extension of its base type was reversed, so it would allow assignments that it shouldn't and disallowed some that it should; and the test case for it incorectly assumed that the invalid semantics were correct. Fix the code and the test, and add a new test for the invalid case (LHS type is an extension of the RHS type). Differential Revision: https://reviews.llvm.org/D125135
-
Peter Klausler authored
The rules in the Fortran standard for specification expressions are full of special cases and exceptions, and semantics didn't get them exactly right. It is valid to refer to an INTENT(OUT) dummy argument in a specification expression in the context of a specification inquiry function like SIZE(); it is not valid to reference an OPTIONAL dummy argument outside of the context of PRESENT. This patch makes the specification expression checker a little context-sensitive about whether it's examining an actual argument of a specification inquiry intrinsic function or not. Differential Revision: https://reviews.llvm.org/D125131
-
Peter Klausler authored
DATA statements in inner procedures were not treating undeclared objects as implicitly declared variables if the DATA statement appeared in a specification part; they were treated as host-associated symbols instead. This was incorrect. Fix DATA statement name resolution to always treat DATA as if it had appeared in the executable part. Differential Revision: https://reviews.llvm.org/D125129
-
Carl Ritson authored
-
Carl Ritson authored
-
Peter Klausler authored
A disassociated procedure pointer is allowed to be passed as an absent actual argument that corresponds to an optional dummy procedure, but not NULL(); accept that case as well. Differential Revision: https://reviews.llvm.org/D125127
-
Peter Klausler authored
The type compatibility checks for the ARRAY= argument and the dummy arguments and result of the OPERATION= argument to the REDUCE intrinsic function need to allow for parameterized data types with LEN parameters. (Their values are required to be identical but this is not a numbered constraint requiring a compilation time check). Differential Revision: https://reviews.llvm.org/D125124
-
Amaury Séchet authored
This cleans up tech debt. Similar to D33390 . Reviewed By: Kmeakin Differential Revision: https://reviews.llvm.org/D125150
-
Peter Klausler authored
Functions returning ALLOCATABLE or POINTER arrays have descriptor inquiries in their results' shape expressions that won't compare equal. These functions need only be checked for compatible ranks (& of course other characteristics). Differential Revision: https://reviews.llvm.org/D125123
-
Peter Klausler authored
The utility UnwrapConvertedExpr() was failing to unwrap a converted TypeParamInquiry operation when called from runtime derived type description table construction, leading to an abort in semantics. Differential Revision: https://reviews.llvm.org/D125119
-
Michael Kruse authored
-
Peter Klausler authored
Structure contructors for instances of parameterized derived types must have their components' values folded in the context of the values of the type parameters. Differential Revision: https://reviews.llvm.org/D125116
-
Greg Clayton authored
A previous commit enabled LLDB to be able to debug a program launched via ld: https://reviews.llvm.org/D108061. This commit adds the ability to debug a program launched via ld when it happens during an exec into the dynamic loader. There was an issue where after the exec we would locate the rendezvous structure right away but it didn't contain any valid values and we would try to set the dyanamic loader breakpoint at address zero. This patch fixes that and adds a test. Differential Revision: https://reviews.llvm.org/D125253
-
LLVM GN Syncbot authored
-
Walter Erquinigo authored
I'm refactoring IntelPTThreadTrace into IntelPTSingleBufferTrace so that it can both single threads or single cores. In this diff I'm basically renaming the class, moving it to its own file, and removing all the pieces that are not used along with some basic cleanup. Differential Revision: https://reviews.llvm.org/D124648
-
Walter Erquinigo authored
This updates the documentation of the gdb-remote protocol, as well as the help messages, to include the new --per-core-tracing option. Differential Revision: https://reviews.llvm.org/D124640
-
Mathieu Fehr authored
Merge the documentation of the definition of extensible dialects with the definition of dialects. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D125200
-
Peter Klausler authored
Actual arguments whose lengths are less than the expected length of their corresponding dummy argument are errors; but this needs to be refined. Short actual arguments that are variables remain errors, but those that are expressions can be (again) extended on the right with blanks. Differential Revision: https://reviews.llvm.org/D125115
-
Nico Weber authored
-
River Riddle authored
This prevents races where we accidentally launched multiple servers.
-
Peter Klausler authored
The construction of the dimension order vector used to populate the result array was incorrect, leading to a scrambled-looking result for rank-3 and higher results. Fix, and extend tests. Differential Revision: https://reviews.llvm.org/D125113
-
Hongtao Yu authored
When a callee function is inlined via an invoke instruction, every function call inside the callee, if not an invoke, will be converted to an invoke after cloned to the caller body. I found that during the conversion the !prof metadata was dropped. This in turned caused a cloned indirect call not properly promoted in subsequent passes. The particular scenario I was investigating was with AutoFDO and thinLTO. In prelink, no ICP was triggered (neither by the sample loader nor PGO ICP), no indirect call was promoted. This is because 1) the particular indirect call did not have inlined samples; and 2) PGO ICP was intentionally disabled. After inlining, the prof metadata was dropped. Then in postlink, PGO ICP jumped in but didn't do anything. Thus the opportunity was missed. I'm making a simple fix to preserve !prof metadata when converting call to invoke. Reviewed By: davidxl Differential Revision: https://reviews.llvm.org/D125249
-
Peter Klausler authored
The standard requires that the operands of the intrinsic function SIGN() must have the same type (INTEGER or REAL), but they are not required to have the same kind. Differential Revision: https://reviews.llvm.org/D125105
-
Florian Mayer authored
Also enable on X86_64. The directory would change during the test execution. This should not necessarily prevent us from indexing a directory (a user might potentially do that if they specify a parent directory of the actual symbols directory, and change unrelated files). Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D125143
-
Michael Kruse authored
This fixes the polly-*-plugin buildbots.
-
Peter Klausler authored
The related real number system inquiry functions SPACING() and RRSPACING() can be folded for constant arguments. See 16.9.164 & 16.9.180 in Fortran 2018. Differential Revision: https://reviews.llvm.org/D125100
-
Alexey Bataev authored
This reverts commit 99f31acf and several others to fix detected crashes, reported in https://reviews.llvm.org/D115750
-
Peter Klausler authored
When the result can be known at compilation time, fold it. Success depends on whether the operands are polymorphic. When neither one is polymorphic, the result is known and can be either .TRUE. or .FALSE.; when either one is polymorphic, a .FALSE. result still can be discerned. Differential Revision: https://reviews.llvm.org/D125062
-
Alexey Bataev authored
If the same scalar is inserted several times into the same buildvector, the mask index can be used already. In this case need to check, that this scalar is already part of the vectorized buildvector.
-
Peter Klausler authored
A BACKSPACE statement on a unit after a READ or WRITE with ADVANCE="NO" must reset the position to the beginning of the record, not to the beginning of the previous one. Differential Revision: https://reviews.llvm.org/D125057
-
Peter Klausler authored
I'm emitting zero characters for (G0) formatting of CHARACTER values instead of using their lengths to determine the output field width. Differential Revision: https://reviews.llvm.org/D125056
-
Peter Klausler authored
A repeated format item group with an unlimited ('*') repetition count can appear only as the last item at the top level of a format; it can't be nested in more parentheses and it can't be followed by anything else. Differential Revision: https://reviews.llvm.org/D125054
-