- Aug 02, 2019
-
-
Douglas Yung authored
Reviewers: beanz Differential Revision: https://reviews.llvm.org/D65559 llvm-svn: 367641
-
Eric Christopher authored
due to a sanitizer failure. This reverts commit 367623. llvm-svn: 367640
-
JF Bastien authored
We require at least MSVC 2017, but I forgot to update Compiler.h when I updated the MSVC requirement. llvm-svn: 367639
-
Jonas Devlieghere authored
Reformat OptionEnumValueElement to make it easier to distinguish between its fields. This also removes the need to disable clang-format for these arrays. Differential revision: https://reviews.llvm.org/D65489 llvm-svn: 367638
-
Daniel Sanders authored
Fix up an unused variable warning caused by TRI->isVirtualRegister() -> Register::isVirtualRegister() llvm-svn: 367637
-
Daniel Sanders authored
Summary: The MC layer doesn't expect to deal with vregs but TargetRegisterClass::contains() forwards into MCRegisterClass::contains() and this can cause vregs to turn up in the MC layer APIs. Add guards against this to prevent this becoming a problem as we replace unsigned with a new MCRegister object for improved type safety. Reviewers: arsenm Subscribers: wdng, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D65554 llvm-svn: 367636
-
Jonas Devlieghere authored
In r367348, I changed dsymutil to pass the LinkOptions by value isntead of by const reference. However, the options were still captured by reference in the LinkLambda. This patch fixes that by passing them in by value. llvm-svn: 367635
-
Philip Reames authored
llvm-svn: 367634
-
Daniel Sanders authored
Finish moving TargetRegisterInfo::isVirtualRegister() and friends to llvm::Register as started by r367614. NFC llvm-svn: 367633
-
Jan Korous authored
llvm-svn: 367632
-
Eric Fiselier authored
I have upcoming changes that modify how deque handles spare blocks. This cleanup is intended to make those changes easier to review and understand. This patch should have NFC. llvm-svn: 367631
-
Rong Xu authored
Add PGO support at -O0 in the experimental new pass manager to sync the behavior of the legacy pass manager. Also change the test of gcc-flag-compatibility.c for more complete test: (1) change the match string to "profc" and "profd" to ensure the instrumentation is happening. (2) add IR format proftext so that PGO use compilation is tested. Differential Revision: https://reviews.llvm.org/D64029 llvm-svn: 367628
-
Joel E. Denny authored
Windows bots are broken. See recent D65335 and D65156 comments. llvm-svn: 367627
-
Joel E. Denny authored
Must be reverted in order to revert r366980, which breaks windows bots. See recent D65335 and D65156 comments. llvm-svn: 367626
-
JF Bastien authored
It's already in Compiler.h llvm-svn: 367625
-
Stanislav Mekhanoshin authored
The previous change to fix crash in the vectorizer introduced performance regressions. The condition to preserve pointer address space during the search is too tight, we only need to match the size. Differential Revision: https://reviews.llvm.org/D65600 llvm-svn: 367624
-
Nilanjana Basu authored
Signed-off-by:
Nilanjana Basu <nilanjana.basu87@gmail.com> llvm-svn: 367623
-
- Aug 01, 2019
-
-
Harlan Haskins authored
llvm-svn: 367622
-
Harlan Haskins authored
llvm-svn: 367620
-
Wouter van Oortmerssen authored
Summary: Fixes: https://bugs.llvm.org/show_bug.cgi?id=42441 Used to print: <unknown>:0: error: Cannot represent a difference across sections (the location was null). Now prints: err.s:20:3: error: Cannot represent a difference across sections i32.const foo-bar ^ Note: I looked at adding a test for this, but I don't think it is worth it. We're not testing error formatting in the Wasm backend :) Reviewers: sbc100, jgravelle-google Subscribers: dschuff, aheejin, sunfish, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D65602 llvm-svn: 367619
-
Harlan Haskins authored
Summary: Currently, clang's FileManager uses NULL as an indicator that a particular file did not exist, but would not propagate errors like permission issues. Instead, teach FileManager to use llvm::ErrorOr internally and return rich errors for failures. Reviewers: arphaman, bruno, martong, shafik Subscribers: nemanjai, kbarton, MaskRay, jkorous, dexonsmith, kadircet, jsji, cfe-commits, lldb-commits Tags: #clang, #lldb Differential Revision: https://reviews.llvm.org/D65534 llvm-svn: 367618
-
Harlan Haskins authored
The FileManager has been updated to return llvm::ErrorOr from getFile and getDirectory, this commit updates all the callers of those APIs from clang. llvm-svn: 367617
-
Harlan Haskins authored
Update the callers of FileManager::getFile and FileManager::getDirectory to handle the new llvm::ErrorOr-returning methods. Signed-off-by:
Harlan Haskins <harlan@apple.com> llvm-svn: 367616
-
Harlan Haskins authored
Previously, the FileManager would use NULL returns to signify whether a file existed, but that doesn’t cover permissions issues or anything else that might occur while trying to stat or read a file. Instead, convert getFile and getDirectory into returning llvm::ErrorOr Signed-off-by:
Harlan Haskins <harlan@apple.com> llvm-svn: 367615
-
Daniel Sanders authored
Summary: The namespacing in Register is currently slightly wrong as there is a (rarely used) stack slot namespace too. The namespacing doesn't use anything from the Target so we can move the definition from TargetRegisterInfo to Register to keep it in one place Note: To keep the patch reasonably sized for review I've left stub functions in the original TargetRegisterInfo. We should update all the uses instead Reviewers: arsenm, bogner, aditya_nandakumar, volkan Subscribers: wdng, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D65553 llvm-svn: 367614
-
Gheorghe-Teodor Bercea authored
Summary: This patch fixes the case where variables in different compilation units or the same compilation unit are under the declare target link clause AND have the same name. This also fixes the name clash error that occurs when unified memory is activated. The changes in this patch include: - Pointers to internal variables are given unique names. - Externally visible variables are given the same name as before. - All pointer variables (external or internal) are weakly linked. Reviewers: ABataev, jdoerfert, caomhin Reviewed By: ABataev Subscribers: lebedev.ri, guansong, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64592 llvm-svn: 367613
-
Sanjay Patel authored
Prevent folding away the math completely. llvm-svn: 367612
-
Csaba Dabis authored
Summary: It allows discriminating between stack frames of the same call that is called multiple times in a loop. Thanks to Artem Dergachev for the great idea! Reviewed By: NoQ Tags: #clang Differential Revision: https://reviews.llvm.org/D65587 llvm-svn: 367608
-
Sanjay Patel authored
llvm-svn: 367607
-
Eric Fiselier authored
llvm-svn: 367606
-
Eric Fiselier authored
Previously these types rehashed to a table of 193 elements upon construction. But this is non-ideal, first because default constructors should not allocate unless necessary, and second because 193 is big and can waste a bunch of memory. This number had previously been chosen to match GCC's implementation. llvm-svn: 367605
-
Matt Arsenault authored
AMDGPU sometimes has legal s16 and <2 x s16> operations, but all registers are really 32-bit. An unmerge destination really should ben widened to a 32-bit register. If widening a scalarizing vector with a target size that matches the vector size, bitcast to integer and extract the relevant bits with shifts. I'm not sure if this is the right place for this. This could arguably be part of widenScalar for the result. I also have a growing feeling that we're missing a bitcast legalize action. llvm-svn: 367604
-
Sjoerd Meijer authored
Some buildbots complained about: error: default label in switch which covers all enumeration values llvm-svn: 367603
-
Yuanfang Chen authored
Some target do not use this option and may emit a error message for using it. llvm-svn: 367602
-
Craig Topper authored
If a type is larger than a legal type and needs to be split, we would previously allow the multiply to be decomposed even if the split multiply is legal. Since the shift + add/sub code would also need to be split, its not any better to decompose it. This patch figures out what type the mul will eventually be legalized to and then uses that type for the query. I tried just returning false illegal types and letting them get handled after type legalization, but then we can't recognize and i64 constant splat on 32-bit targets since will be destroyed by type legalization. We could special case vectors of i64 to avoid that... Differential Revision: https://reviews.llvm.org/D65533 llvm-svn: 367601
-
Craig Topper authored
[X86] Add some test cases for 512-bit truncate to 128-bits with min-legal-vector-width=0 and prefer-vector-width=256. We currently split the 512 type, truncate each half to 128 bits, concatenate them, and then truncate again. Probably better to truncate each half to 64-bits and then concat the results using vpunpcklqdq. llvm-svn: 367600
-
Martin Storsjö authored
The Archive object created when loading an archive specified with wholearchive got cleaned up immediately, when the owning std::unique_ptr went out of scope, even if persisted StringRefs pointed to memory that belonged to the archive, which no longer was mapped in memory. This hasn't been an issue with regular (as opposed to thin) archives, as references to the member objects has kept the mapping for the whole archive file alive - but with thin archives, all such references point to other files. Add the std::unique_ptr to the arena allocator, to retain it as long as necessary. This fixes (the last issue raised in) PR42388. Differential Revision: https://reviews.llvm.org/D65565 llvm-svn: 367599
-
Matt Arsenault authored
Any register should work for the src field since r366067, since the used value is not pulled from the expected encoding field. llvm-svn: 367598
-
Matt Arsenault authored
The note in the documentation suggests this restriction is a compile time optimization for architectures that make heavy use of bundling. Allowing virtual registers in a bundle is useful for some (non-R600) AMDGPU use cases and are infrequent enough to matter. A more common AMDGPU use case has already been using virtual registers in bundles since r333691, although never calling finalizeBundle on them and manually creating the use/def list on the BUNDLE instruction. This is also relatively infrequent, and only happens for consecutive sequences of some load/store types. llvm-svn: 367597
-
Alina Sbirlea authored
Summary: DominatorTree is invalid after SimplifyCFG because of a missed `Changed = true` when simplifying a branch condition and removing an edge. Resolves PR42272. Reviewers: zhizhouy, manojgupta Subscribers: jlebar, sanjoy.google, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D65490 llvm-svn: 367596
-