summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [X86] Reuse EFLAGS and form LOCKed ops when only user is SETCC.Ahmed Bougacha2016-04-052-30/+81
| | | | | | | | | | | | | | | | | | | | We only generate LOCKed versions of add/sub when the result is unused. It often happens that the result is used, but only by a comparison. We can optimize those out by reusing EFLAGS, which lets us use the proper instructions, instead of having to fallback to LXADD. Instead of doing this as an MI peephole (as we do for the other non-LOCKed (really, non-MR) forms), do it in ISel. It becomes quite tricky later. This also makes it eventually possible to stop expanding and/or/xor if the only user is an icmp (also see D18141). This uses the LOCK ISD opcodes added by r262244. Differential Revision: http://reviews.llvm.org/D17633 llvm-svn: 265450
* [GlobalISel] Add the RegisterBankInfo class for the handling of register banks.Quentin Colombet2016-04-053-0/+81
| | | | llvm-svn: 265449
* [X86] Add tests for ATOMIC_LOAD_OP EFLAGS reuse. NFC.Ahmed Bougacha2016-04-051-0/+159
| | | | llvm-svn: 265448
* [X86] Simplify early-exit check. NFC.Ahmed Bougacha2016-04-051-4/+4
| | | | llvm-svn: 265447
* [Support] Add a checked flag to Expected<T>, require checks before access orLang Hames2016-04-052-27/+136
| | | | | | | | | | destruction. This makes the Expected<T> class behave like Error, even when in success mode. Expected<T> values must be checked to see whether they contain an error prior to being dereferenced, assigned to, or destructed. llvm-svn: 265446
* [GlobalISel] Add a class, RegisterBank, to represent register banks.Quentin Colombet2016-04-053-0/+108
| | | | llvm-svn: 265445
* fixed to discard earlier advertisingSanjay Patel2016-04-051-3/+4
| | | | | | | Also, hardcode (there must be a better way...) the 'utils' dir in the advertisement, so it's easier to find. llvm-svn: 265444
* Fix a crasher that could happen if ClangASTSource::CompleteType() found a ↵Greg Clayton2016-04-051-3/+3
| | | | | | | | type whose name matched, but came from a different language. We need to verify that any types we find are clang types before trying to extra a clang::QualType and then use it. <rdar://problem/24138711> llvm-svn: 265443
* fix typo; NFCSanjay Patel2016-04-051-1/+1
| | | | llvm-svn: 265442
* [AArch64][Test] Do not override the suffixes for test cases.Quentin Colombet2016-04-052-3/+1
| | | | llvm-svn: 265441
* [GlobalISel] Add the skeleton of the RegBankSelect pass.Quentin Colombet2016-04-055-0/+146
| | | | | | | This pass is reponsible for assigning the generic virtual registers to register banks. llvm-svn: 265440
* Fix broken tests from no-jump-table commitNirav Dave2016-04-056-17/+21
| | | | | | | | | | | | Summary: Fix failing tests from no-jump-table flag addition Reviewers: jyknight Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D18801 llvm-svn: 265439
* [Support] clang-format Error.h.Lang Hames2016-04-051-22/+13
| | | | | | This tidies up the ExitOnError class and some other recently added code. NFC. llvm-svn: 265438
* [STATS] Remove trailing whitespace in stats source filesJonathan Peyton2016-04-054-40/+40
| | | | llvm-svn: 265437
* [CUDA] Show --cuda-gpu-arch option in clang --help.Justin Lebar2016-04-051-2/+2
| | | | | | For some reason it was hidden. llvm-svn: 265436
* [CUDA] Add -fcuda-flush-denormals-to-zero.Justin Lebar2016-04-057-0/+46
| | | | | | | | | | | | | | | | | | Summary: Setting this flag causes all functions are annotated with the "nvvm-f32ftz" = "true" attribute. In addition, we annotate the module with "nvvm-reflect-ftz" set to 0 or 1, depending on whether -cuda-flush-denormals-to-zero is set. This is read by the NVVMReflect pass. Reviewers: tra, rnk Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D18671 llvm-svn: 265435
* fix documentation comments; NFCSanjay Patel2016-04-051-39/+34
| | | | llvm-svn: 265434
* Swift Calling Convention: swifterror target-independent change.Manman Ren2016-04-057-4/+391
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | At IR level, the swifterror argument is an input argument with type ErrorObject**. For targets that support swifterror, we want to optimize it to behave as an inout value with type ErrorObject*; it will be passed in a fixed physical register. The main idea is to track the virtual registers for each swifterror value. We define swifterror values as AllocaInsts with swifterror attribute or a function argument with swifterror attribute. In SelectionDAGISel.cpp, we set up swifterror values (SwiftErrorVals) before handling the basic blocks. When iterating over all basic blocks in RPO, before actually visiting the basic block, we call mergeIncomingSwiftErrors to merge incoming swifterror values when there are multiple predecessors or to simply propagate them. There, we create a virtual register for each swifterror value in the entry block. For predecessors that are not yet visited, we create virtual registers to hold the swifterror values at the end of the predecessor. The assignments are saved in SwiftErrorWorklist and will be materialized at the end of visiting the basic block. When visiting a load from a swifterror value, we copy from the current virtual register assignment. When visiting a store to a swifterror value, we create a virtual register to hold the swifterror value and update SwiftErrorMap to track the current virtual register assignment. Differential Revision: http://reviews.llvm.org/D18108 llvm-svn: 265433
* Fix missing period in no-jump-table flag comment. NFC.Nirav Dave2016-04-051-1/+1
| | | | llvm-svn: 265432
* add tests to show missing optimization from D18230Sanjay Patel2016-04-051-0/+59
| | | | llvm-svn: 265431
* add example usage and workflow to --help outputSanjay Patel2016-04-051-2/+25
| | | | llvm-svn: 265430
* llvm-dwp: Simplify hashing code a bitDavid Blaikie2016-04-051-1/+2
| | | | llvm-svn: 265426
* Add -fno-jump-tables and-fjump-tables flagsNirav Dave2016-04-056-0/+22
| | | | | | | | | | | | | Add no-jump-tables flag to disable use of jump tables when lowering switch statements Reviewers: echristo, hans Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D18407 llvm-svn: 265425
* Fix formatting.Rui Ueyama2016-04-051-1/+1
| | | | llvm-svn: 265424
* Add test case forgotten in r265379.Tobias Grosser2016-04-051-0/+52
| | | | | | Thanks Johannes for reminding me. llvm-svn: 265423
* Fix dotest.py '-p' option for multi-process modeStephane Sezer2016-04-051-0/+4
| | | | | | | | | | | | | | | | | Summary: The '-p' option for dotest.py was ignored in multiprocess mode, as the -p argument to the inferior would overwrite the -p argument passed on the command line. Reviewers: zturner, tfiala Subscribers: lldb-commits, sas Differential Revision: http://reviews.llvm.org/D18779 Change by Francis Ricci <fjricci@fb.com> llvm-svn: 265422
* Update watchpoint help to use new -s flagStephane Sezer2016-04-051-7/+7
| | | | | | | | | | | | | | Summary: Flag updated in D233237 Reviewers: spyffe, jingham, Eugene.Zelenko Subscribers: lldb-commits, sas Differential Revision: http://reviews.llvm.org/D18660 Change by Francis Ricci <fjricci@fb.com> llvm-svn: 265421
* Print environment when dumping arch tripleStephane Sezer2016-04-051-0/+4
| | | | | | | | | | | | | | Summary: Print environment from triple if it exists. Reviewers: tfiala, clayborg Subscribers: lldb-commits, sas Differential Revision: http://reviews.llvm.org/D18620 Change by Francis Ricci <fjricci@fb.com> llvm-svn: 265420
* Make sure to update Target arch if environment changedStephane Sezer2016-04-051-1/+1
| | | | | | | | | | | | | | Summary: Fixes "target list" for non-android linux platforms (ie gnu, gnueabi) Reviewers: jasonmolenda, tfiala, clayborg, tberghammer Subscribers: tberghammer, danalbert, lldb-commits, sas Differential Revision: http://reviews.llvm.org/D18631 Change by Francis Ricci <fjricci@fb.com> llvm-svn: 265419
* Allow gdbremote process to read modules from memoryStephane Sezer2016-04-055-63/+22
| | | | | | | | | | | | | | | | | | | | | | Summary: The logic to read modules from memory was added to LoadModuleAtAddress in the dynamic loader, but not in process gdb remote. This means that when the remote uses svr4 packets to give library info, libraries only present on the remote will not be loaded. This patch therefore involves some code duplication from LoadModuleAtAddress in the dynamic loader, but removing this would require some amount of code refactoring. Reviewers: ADodds, tberghammer, tfiala, deepak2427, ted Subscribers: tfiala, lldb-commits, sas Differential Revision: http://reviews.llvm.org/D18531 Change by Francis Ricci <fjricci@fb.com> llvm-svn: 265418
* [InstCombine] regenerate checksSanjay Patel2016-04-0510-81/+89
| | | | | | | | | utils/update_test_checks.py was improved with: http://reviews.llvm.org/rL265414 to CHECK-NEXT the first line of the IR function. This ensures that nothing bad has happened before that. llvm-svn: 265417
* [x86] regenerate checksSanjay Patel2016-04-053-43/+86
| | | | | | | | | | | utils/update_test_checks.py was improved with: http://reviews.llvm.org/rL265414 to include the first line of the function (expected to be a comment line). This ensures that nothing bad has happened before the first actual line of checked asm. It also matches the existing behavior of the old script. llvm-svn: 265416
* WebAssembly: fix cfg-stackify testJF Bastien2016-04-051-10/+10
| | | | | | It was broken by reshuffling induced by r265397 'Don't delete empty preheaders in CodeGenPrepare if it would create a critical edge'. llvm-svn: 265415
* check or check-next the first line of the function tooSanjay Patel2016-04-051-5/+15
| | | | | | | | | | | | | | | | We could make this an option if people don't like it. But since part of the reason for using a script to generate checks is to prevent lazy checking that lets bugs crawl through, let's have the script check the first line too. For asm tests, it ensures that nothing unexpected has happened before the first line of asm. This matches the existing behavior of update_llc_test_checks.py. More discussion in PR22897: https://llvm.org/bugs/show_bug.cgi?id=22897 llvm-svn: 265414
* Remove dead code and comment [NFC]Johannes Doerfert2016-04-051-11/+1
| | | | llvm-svn: 265413
* [TableGen] AsmMatcherEmitter.cpp: replace a sequence of "if" to "switch" in ↵Valery Pykhtin2016-04-051-2/+6
| | | | | | | | emitValidateOperandClass. Differential Revision: http://reviews.llvm.org/D18394 llvm-svn: 265412
* [lanai] LanaiSetflagAluCombiner more conservativeJacques Pienaar2016-04-052-8/+54
| | | | | | | | | | | | Summary: LanaiSetflagAluCombiner could previously combine instructions across basic building blocks even when not legal. Make the LanaiSetflagAluCombiner more conservative to avoid this. Reviewers: eliben Subscribers: joker.eph, llvm-commits Differential Revision: http://reviews.llvm.org/D18746 llvm-svn: 265411
* [WWW] Update passesJohannes Doerfert2016-04-051-4/+1
| | | | llvm-svn: 265410
* [ARM] Cleanup of smul and smla instruction descriptionsSam Parker2016-04-051-12/+12
| | | | | | | | | Removed the SDNode argument passed to the AI_smul and AI_smla multiclass definitions as they are always mul. Differential Revision: http://reviews.llvm.org/D18791 llvm-svn: 265409
* [AMDGPU] Emit linkonce and linkonce_odr symbolsKonstantin Zhuravlyov2016-04-052-0/+58
| | | | | | Differential Revision: http://reviews.llvm.org/D18726 llvm-svn: 265408
* [BlockPlacement] Remove an unnecessary continueHaicheng Wu2016-04-051-1/+0
| | | | | | NFC. llvm-svn: 265407
* Reverting r265401 ("Enabling AddressSanitizer tests, they should work now.")Kuba Brecka2016-04-052-0/+2
| | | | llvm-svn: 265406
* [X86] Introduction of -march=lakemont.Andrey Turetskiy2016-04-053-3/+32
| | | | | | Differential Revision: http://reviews.llvm.org/D18651 llvm-svn: 265405
* Update for llvm change.Rafael Espindola2016-04-057-28/+19
| | | | llvm-svn: 265404
* Use ArrayRef for contiguous areas in ELF. NFC.Rafael Espindola2016-04-053-20/+20
| | | | | | This just simplifies the code a bit. More so in lld. llvm-svn: 265403
* Add missing test for the "Don't delete empty preheaders" added in r265397Chuang-Yu Cheng2016-04-051-0/+39
| | | | | Author: Tom Jablin (tjablin) llvm-svn: 265402
* Enabling AddressSanitizer tests, they should work now.Kuba Brecka2016-04-052-2/+0
| | | | llvm-svn: 265401
* Fixing AddressSanitizer tests (update expectations for current ASan, make it ↵Kuba Brecka2016-04-052-23/+13
| | | | | | work on OS X 10.10 and older). llvm-svn: 265400
* Centralize the definition of a few types. NFC.Rafael Espindola2016-04-052-8/+9
| | | | llvm-svn: 265399
* [NFC] Cleanup the code used to run shell commands from testsTamas Berghammer2016-04-056-71/+34
| | | | | | | | | | | | Previously we had 3 different method to run shell commands on the target and 4 copy of code waiting until a given file appears on the target device (used for syncronization). This CL merges these methods to 1 run_platform_command and 1 wait_for_file_on_target functions located in some utility classes. Differential revision: http://reviews.llvm.org/D18789 llvm-svn: 265398
OpenPOWER on IntegriCloud