- Sep 03, 2020
-
-
Diego Caballero authored
Make use of affine memory op interfaces in AffineLoopInvariantCodeMotion so that it can also work on affine.vector_load and affine.vector_store ops. Reviewed By: bondhugula Differential Revision: https://reviews.llvm.org/D86986
-
Hongtao Yu authored
For ThinLTO importing we don't need to import all the fields of the DICompileUnit, such as enums, macros, retained types lists. The importation of those fields were previously disabled by setting their value map entries to nullptr. Unfortunately a metadata node can be shared by multiple metadata operands. Setting the map entry to nullptr might result in not importing other metadata unexpectedly. The issue is fixed by explicitly setting the original DICompileUnit fields (still a copy of the source module metadata) to null. Reviewed By: wenlei, dblaikie Differential Revision: https://reviews.llvm.org/D86675
-
Walter Erquinigo authored
-
Kostya Kortchinsky authored
I had left this as a TODO, but it turns out it wasn't complicated. By specifying `MAP_RESIZABLE`, it allows us to keep the VMO which we can then use for release purposes. `releasePagesToOS` also had to be called the "proper" way, as Fuchsia requires the `Offset` field to be correct. This has no impact on non-Fuchsia platforms. Differential Revision: https://reviews.llvm.org/D86800
-
Adrian Prantl authored
cache for implicit modules. The ModuleManager's use of FileEntry nodes as the keys for its map of loaded modules is less than ideal. Uniqueness for FileEntry nodes is maintained by FileManager, which in turn uses inode numbers on hosts that support that. When coupled with the module cache's proclivity for turning over and deleting stale PCMs, this means entries for different module files can wind up reusing the same underlying inode. When this happens, subsequent accesses to the Modules map will disagree on the ModuleFile associated with a given file. In general, it is not sufficient to resolve this conundrum with a type like FileEntryRef that stores the name of the FileEntry node on first access because of path canonicalization issues. However, the paths constructed for implicit module builds are fully under Clang's control. We *can*, therefore, rely on their structure being consistent across operating systems and across subsequent accesses to the Modules map. To mitigate the effects of inode reuse, perform an extra name check when implicit modules are returned from the cache. This has the effect of forcing reused FileEntry nodes to stomp over existing-but-stale entries in the cache, which simulates a miss - exactly the desired behavior. rdar://48443680 Patch by Robert Widmann! Differential Revision: https://reviews.llvm.org/D86823
-
Adrian Prantl authored
This reverts commit e0e7eb2e. [the commit this fixes up was reverted]
-
Diego Caballero authored
Make sure that memory ops that are defined inside the loop are registered as such in 'defineOp'. In the test provided, the 'mulf' op was hoisted outside the loop nest even when its 'affine.load' operand was not. Reviewed By: bondhugula Differential Revision: https://reviews.llvm.org/D86982
-
Nemanja Ivanovic authored
Quite a while ago, we legalized these nodes as we added custom handling for reciprocal estimates in the back end. We have since moved to target-independent combines but neglected to turn off legalization. As a result, we can now get selection failures on non-VSX subtargets as evidenced in the listed PR. Fixes: https://bugs.llvm.org/show_bug.cgi?id=47373
-
Jay Foad authored
Differential Revision: https://reviews.llvm.org/D87033
-
Ahsan Saghir authored
MemorySanitizer test fails on systems with more than 1024 CPUs. This patch updates the test to make it work for machines that have more than 1024 CPUs. This helps to fix errors on the PowerPC sanitizer bot. Reviewed By: #powerpc, nemanjai Differential Revision: https://reviews.llvm.org/D87053
-
Yaxun (Sam) Liu authored
Temporarily revert commit 04abbb3a due to regressions in some HIP apps due backend issues revealed by this change. Will re-commit it when backend issues are fixed.
-
peter klausler authored
Differential Revision: https://reviews.llvm.org/D87052
-
Eric Astor authored
-
Michael Schellenberger Costa authored
-
Med Ismail Bennani authored
This patch fixes the windows failures introduced by `addb5148`: http://lab.llvm.org:8011/builders/lldb-x64-windows-ninja/builds/18671/steps/test/logs/stdio This macro, used in the test to check the platform, was missing a `_`, making the test behave like it was run from a UNIX platform. Signed-off-by:
Med Ismail Bennani <medismail.bennani@gmail.com>
-
Yitzhak Mandelbaum authored
This patch restores the default traversal for Transformer's `makeRule` to `TK_AsIs`. The implicit mode has proven problematic. Differential Revision: https://reviews.llvm.org/D87048
-
Fangrui Song authored
[GCDAProfiling] Suppress -Wprio-ctor-dtor for GCC>=9 and remove unused write_string/length_of_string The `__attribute__((destructor(100)))` diagnostic does not have a warning option in GCC 8 (before r264853) and thus cannot be suppressed.
-
Michael Schellenberger Costa authored
Reviewed By: #libc, ldionne Differential Revision: https://reviews.llvm.org/D80558
-
Albion Fung authored
This patch implements the builtins for Vector Multiply Builtins (vmulxxd family of instructions), and adds the appropriate test cases for these builtins. The builtins utilize the vector multiply instructions itnroduced with ISA 3.1. Differential Revision: https://reviews.llvm.org/D83955
-
Mehdi Amini authored
Instead of storing a StringRef, we keep an Identifier which otherwise requires a lock on the context to retrieve. This will allow to get an Identifier for any registered Operation for "free". Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D86994
-
Erik Pilkington authored
-
Erik Pilkington authored
On x86, long double has 6 unused trailing bytes. This patch changes the constant evaluator to treat them as though they were padding bytes, so reading from them results in an indeterminate value, and nothing is written for them. Also, fix a similar bug with bool, but instead of treating the unused bits as padding, enforce that they're zero. Differential revision: https://reviews.llvm.org/D76323
-
Raphael Isemann authored
These new .def files weren't marked as textual so they ended up being compiled into the Clang module (which completely defeats the purpose of .def files).
-
Nico Weber authored
The cmake build uses COMPILER_RT_TARGET_HAS_* in the CMakeLists.txt but then translates it to -DCOMPILER_RT_HAS_* flags which the c++ code checks for. So we need to define the latter, not the former.
-
Julian Lettner authored
The interceptor for the block variants of the API references the function versions (via `REAL(name##_f)`). On Linux, this accesses the underlying "real pointer", defined by the interceptor macro. So we need to declare interceptors in the right order to avoid undefined symbol compiler error: ``` error: no member named 'real_dispatch_async_and_wait_f' in namespace '__tsan::__interception' ``` rdar://68181542
-
Douglas Yung authored
This reverts commit c4a2a130. This commit was causing a test failure: http://lab.llvm.org:8011/builders/llvm-clang-win-x-armv7l/builds/1068
-
Arthur Eubanks authored
Should not be with the pass, but alongside all the other C bindings. Reviewed By: sroland Differential Revision: https://reviews.llvm.org/D87041
-
Alex Richardson authored
Before: x = (foo *[[clang::attr]]) * v; After: x = (foo *[[clang::attr]])*v; Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D86721
-
peter klausler authored
These are owned by an instance of a new class AllCookedSources. This removes the need for a Scope to own a string containing a module's cooked source stream, and will enable errors to be emitted when parsing module files in the future. Differential Revision: https://reviews.llvm.org/D86891
-
Dmitry Preobrazhensky authored
Summary of changes: - Changed parser to eliminate generation of excessive error messages; - Corrected lit tests to match all expected error messages; - Corrected lit tests to guard against unwanted extra messages (added option "--implicit-check-not=error:"); - Added missing checks and fixed some typos in tests. See bug 46907: https://bugs.llvm.org/show_bug.cgi?id=46907 Reviewers: arsenm, rampitec Differential Revision: https://reviews.llvm.org/D86940
-
peter klausler authored
The DumpSymbolsSources() routine ordered its output by the addresses of the names of the symbols, and was susceptible to variation across environments. Fixed by using a multimap using the values of the names. Differential Revision: https://reviews.llvm.org/D87035
-
Louis Dionne authored
That definition is known to be potentially incorrect, and we don't support GCC in C++03 mode anyway.
-
hyd-dev authored
D56913 introduced the _LIBCPP_FREESTANDING macro and guarded its definition by: #ifndef __STDC_HOSTED__ # define _LIBCPP_FREESTANDING #endif However, __STDC_HOSTED__ is defined as 0 in freestanding implementations instead of undefined, which means that _LIBCPP_FREESTANDING would never get defined. This patch corrects the above as: #if __STDC_HOSTED__ == 0 # define _LIBCPP_FREESTANDING #endif Differential Revision: https://reviews.llvm.org/D86055
-
Louis Dionne authored
This commit re-applies 99f3b231, which was reverted in 81424257 because it broke the modules build. The modules failure was a circular dependency between the Darwin module and __config. Specifically, the issue was that if <__config> includes a system header, the std_config module depends on the Darwin module. However, the Darwin module already depends on the std_config header because some of its headers include libc++ headers like <ctype.h> (they mean to include the C <ctype.h>, but libc++ headers are first in the header search path). This is fixed by moving the workaround to <ctime> only. https://llvm.org/PR47208 rdar://68157284
-
Erik Pilkington authored
This effectively disables r340386 on Darwin, and provides a command line flag to opt into/out of this behaviour. This change is needed to compile certain Apple headers correctly. rdar://47688592 Differential revision: https://reviews.llvm.org/D86881
-
Erik Pilkington authored
This assert doesn't really make sense for functions in general, since they start life as declarations, and there isn't really any reason to require them to be defined before attributes are applied to them. rdar://67895846
-
Eric Astor authored
Add support for line continuations (the "backslash operator") in MASM by modifying the Parser's Lex method. Reviewed By: thakis Differential Revision: https://reviews.llvm.org/D83347
-
- Sep 02, 2020
-
-
Simon Pilgrim authored
If the PSHUFBs have no other uses, then we can force the unselected elements to zero to OR them instead, avoiding both an extra mask load and a costly variable blend. Eventually we should try to bring this into shuffle combining, once we can more easily convert between shuffles + select patterns.
-
Ehsan Toosi authored
In this PR, the users of BufferPlacement can configure BufferAssginmentTypeConverter. These new configurations would give the user more freedom in the process of converting function signature, and return and call operation conversions. These are the new features: - Accepting callback functions for decomposing types (i.e. 1 to N type conversion such as unpacking tuple types). - Defining ResultConversionKind for specifying whether a function result with a certain type should be appended to the function arguments list or should be kept as function result. (Usage: converter.setResultConversionKind<MemRefType>(AppendToArgumentList)) - Accepting callback functions for composing or decomposing values (i.e. N to 1 and 1 to N value conversion). Differential Revision: https://reviews.llvm.org/D85133 -
Jordan Rupprecht authored
The /proc/<pid>/status parsing is missing a few cases: - Idle - Parked - Dead If we encounter an unknown proc state, this leads to an msan warning. In reality, we only check that the state != Zombie, so it doesn't really matter that we handle all cases, but handle them anyway (current list: [1]). Also explicitly set it to unknown if we encounter an unknown state. There will still be an msan warning if the proc entry has no `State:` line, but that should not happen. Use a StringSwitch to make the handling of proc states a little more compact. [1] https://github.com/torvalds/linux/blob/master/fs/proc/array.c Reviewed By: labath Differential Revision: https://reviews.llvm.org/D86818
-