summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
...
* TTI: Add getCallInstrCost.Michael Zolotukhin2015-03-174-0/+34
| | | | | Review: http://reviews.llvm.org/D8094 llvm-svn: 232524
* TLI: Add interface for querying whether a function is vectorizable.Michael Zolotukhin2015-03-172-0/+125
| | | | | Review: http://reviews.llvm.org/D8093 llvm-svn: 232523
* LoopVectorizer: Add TargetTransformInfo.Michael Zolotukhin2015-03-171-9/+12
| | | | | Review: http://reviews.llvm.org/D8092 llvm-svn: 232522
* [asan] remove redundant ifndefs. NFCKostya Serebryany2015-03-171-9/+5
| | | | llvm-svn: 232521
* Remove LookupSymbol(StringRef) and optimize LookupSymbol(Twine).Yaron Keren2015-03-172-8/+3
| | | | | | | | Same as MakeArgString in r232465, keep only LookupSymbol(Twine) while making sure it handles the StringRef like cases efficiently using twine::toStringRef. llvm-svn: 232517
* [ARM] Fix offset calculation in ARMBaseRegisterInfo::needsFrameBaseRegRichard Barton2015-03-173-26/+35
| | | | | | | | | | | | | The input offset to needsFrameBaseReg is a negative value below the top of the stack frame, but when converting to a positive offset from the bottom of the stack frame this value was negated, causing the final offset to be too large by twice the input offset's magnitude. Fix that by not negating the offset. Patch by John Brawn Differential Revision: http://reviews.llvm.org/D8316 llvm-svn: 232513
* [SwitchLowering] Remove incoming values in the reverse orderMichael Liao2015-03-172-1/+140
| | | | | | | - To prevent invalidating *successive* indices. llvm-svn: 232510
* [docs] Fix copy-and-paste bug in def-use exampleAdam Nemet2015-03-171-1/+1
| | | | | | | This appeared when the example was converted to use range-based loop in r207755. llvm-svn: 232509
* Fix GCC -Wparentheses warning (& reformat now that the precedence is fixed)David Blaikie2015-03-171-2/+2
| | | | | | | Benign warning (clang deliberately suppresses this case) but does regularly produce bad formatting, so it's nice to fix/reformat. llvm-svn: 232508
* Verifier: Set --verify-debug-info=true by defaultDuncan P. N. Exon Smith2015-03-171-1/+1
| | | | | | | | | | | | | | | | | | | r186634 started verifying debug info, and r194986 disabled it by default because it was too expensive to run the checks on every function (since most of the graph was reachable from each function). r206300 moved the checks to module-level to make it cheaper, but there was already quite a bit of testcase bitrot (and the verifier would only print `<badref>`) so I guess no one had time to turn it back on. This does just that. Upgrade scripts this past autumn and winter probably fixed some of the bitrot, and this weekend I fixed the verifier output (r232275, r232417, r232418) and thusly the remaining failing testcases (r232290, r232415). This is part of PR22777. llvm-svn: 232505
* Add the option, -dis-symname to llvm-objdump used with -macho andKevin Enderby2015-03-173-0/+35
| | | | | | -disassemble to disassemble just one symbol’s instructions. llvm-svn: 232503
* asan: optimization experimentsDmitry Vyukov2015-03-173-60/+340
| | | | | | | | | | | | | | | | | | | | The experiments can be used to evaluate potential optimizations that remove instrumentation (assess false negatives). Instead of completely removing some instrumentation, you set Exp to a non-zero value (mask of optimization experiments that want to remove instrumentation of this instruction). If Exp is non-zero, this pass will emit special calls into runtime (e.g. __asan_report_exp_load1 instead of __asan_report_load1). These calls make runtime terminate the program in a special way (with a different exit status). Then you run the new compiler on a buggy corpus, collect the special terminations (ideally, you don't see them at all -- no false negatives) and make the decision on the optimization. The exact reaction to experiments in runtime is not implemented in this patch. It will be defined and implemented in a subsequent patch. http://reviews.llvm.org/D8198 llvm-svn: 232502
* Use an underlying enum type of unsigned to silence a -Wmicrosoft warning ↵Reid Kleckner2015-03-171-1/+1
| | | | | | about being unable to put (unsigned)-1 into the default underyling type of int llvm-svn: 232498
* [systemz] Distinguish the 'Q', 'R', 'S', and 'T' inline assembly memory ↵Daniel Sanders2015-03-173-15/+41
| | | | | | | | | | | | | | | | | | | | constraints. Summary: But still handle them the same way since I don't know how they differ on this target. No functional change intended. Reviewers: uweigand Reviewed By: uweigand Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D8251 llvm-svn: 232495
* [Object][ELF] ELFEntityIterator : Add operators for random accessShankar Easwaran2015-03-171-2/+2
| | | | | | Fix review comments from djasper. llvm-svn: 232494
* Remove the error prone GetTempSymbol API.Rafael Espindola2015-03-172-19/+0
| | | | llvm-svn: 232487
* Fix R0 use in PowerPC VSX store for FastIsel.Samuel Antao2015-03-172-2/+45
| | | | | | The VSX stores are sometimes generated with a undefined index register, causing %noreg to be used and R0 to be emitted later on. The semantics of the VSX store (e.g. stdsdx) requires R0 to be used as base if we want zero to be used in the computation of the effective address instead of the content of R0. This patch checks if no index register was generated and forces R0 to be used as base address. llvm-svn: 232486
* Convert the last 4 users of GetTempSymbol to createTempSymbol.Rafael Espindola2015-03-172-4/+4
| | | | | | Despite using the same name these are unrelated. llvm-svn: 232485
* Switch two simple uses of GetTempSymbol to createTempSymbol.Rafael Espindola2015-03-171-2/+2
| | | | llvm-svn: 232484
* Use createTempSymbol to avoid collisions instead of an ad hoc method.Rafael Espindola2015-03-173-18/+10
| | | | llvm-svn: 232483
* Make EmitFunctionHeader a private helper.Rafael Espindola2015-03-175-11/+5
| | | | llvm-svn: 232481
* Re-commit: [hexagon] Distinguish the 'o', 'v', and 'm' inline assembly ↵Daniel Sanders2015-03-173-6/+10
| | | | | | | | | | | | | | | | | | | | | | | | memory constraints. Summary: But still handle them the same way since I don't know how they differ on this target. No functional change intended. Reviewers: kparzysz, adasgupt Reviewed By: kparzysz, adasgupt Subscribers: colinl, llvm-commits Differential Revision: http://reviews.llvm.org/D8204 Like for the PowerPC target, I've had to add 'i' to the constraint mappings in order to pass 2007-12-17-InvokeAsm.ll. It's not clear why 'i' has historically been treated as a memory constraint. llvm-svn: 232480
* Call EmitFunctionHeader just before EmitFunctionBody.Rafael Espindola2015-03-179-14/+14
| | | | | | | This avoids switching to .AMDGPU.config and back and hardcoding the section it switches back to. llvm-svn: 232479
* Convert the easy cases of GetTempSymbol to createTempSymbol.Rafael Espindola2015-03-176-7/+7
| | | | | | | In these cases no code was depending on GetTempSymbol finding an existing symbol. llvm-svn: 232478
* Don't duplicate comment from the .h. NFC.Rafael Espindola2015-03-171-4/+0
| | | | llvm-svn: 232476
* Move the EH symbol to the asm printer and use it for the SJLJ case too.Rafael Espindola2015-03-179-37/+18
| | | | llvm-svn: 232475
* [mips] [IAS] Add support for the XOR $reg,imm pseudo-instruction.Toma Tabacu2015-03-1716-0/+17
| | | | | | | | | | | | | | | | Summary: This adds a MipsInstAlias which expands to XORi $reg,$reg,imm. For example, "xor $6, 0x3A" should be expanded to "xori $6, $6, 58". This should work for all MIPS ISAs. Reviewers: dsanders Reviewed By: dsanders Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D8284 llvm-svn: 232473
* Remove dead code. NFC.Rafael Espindola2015-03-172-28/+0
| | | | llvm-svn: 232472
* Replace a use of GetTempSymbol with createTempSymbol.Rafael Espindola2015-03-176-12/+49
| | | | | | This is cleaner and avoids a crash in a corner case. llvm-svn: 232471
* Fix r232466 by adding 'i' to the mappings for inline assembly memory ↵Daniel Sanders2015-03-173-1/+5
| | | | | | | | | constraints. It's not completely clear why 'i' has historically been treated as a memory constraint. According to the documentation, it represents a constant immediate. llvm-svn: 232470
* [ARM] Add support for ARMV6K subtarget (LLVM)Renato Golin2015-03-1715-19/+149
| | | | | | | | | | | | | | | | | | | | | ARMv6K is another layer between ARMV6 and ARMV6T2. This is the LLVM side of the changes. ARMV6 family LLVM implementation. +-------------------------------------+ | ARMV6 | +----------------+--------------------+ | ARMV6M (thumb) | ARMV6K (arm,thumb) | <- From ARMV6K and ARMV6M processors +----------------+--------------------+ have support for hint instructions | ARMV6T2 (arm,thumb,thumb2) | (SEV/WFE/WFI/NOP/YIELD). They can +-------------------------------------+ be either real or default to NOP. | ARMV7 (arm,thumb,thumb2) | The two processors also use +-------------------------------------+ different encoding for them. Patch by Vinicius Tinti. llvm-svn: 232468
* [ppc] Distinguish the 'es', 'o', 'm', 'Q', 'Z', and 'Zy' inline assembly ↵Daniel Sanders2015-03-173-16/+42
| | | | | | | | | | | | | | | | | | | | | | | memory constraints. Summary: But still handle them the same way since I don't know how they differ on this target. Of these, 'es', and 'Q' do not have backend tests but are accepted by clang. No functional change intended. Depends on D8173. Reviewers: hfinkel Reviewed By: hfinkel Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D8213 llvm-svn: 232466
* Teach Twine to support SmallString.Yaron Keren2015-03-177-64/+78
| | | | | | | | Enable removing .str() member calls for these frequent cases. http://reviews.llvm.org/D6372 llvm-svn: 232465
* Recommit simplification first attempted in r232309 (fixed a bit in r232312, ↵David Blaikie2015-03-171-10/+14
| | | | | | | | | | with fixes in r232314) Messed it up because I didn't realize there were two different iterators here (& clearly didn't build any of this... ) - still seems easier to just use the injected class name than introduce a self typedef. llvm-svn: 232462
* [AArch64] Use intermediate step for concat_vectors of illegal truncs.Ahmed Bougacha2015-03-172-0/+62
| | | | | | | | | | | | | | | | | | Optimize concat_vectors of truncated vectors, where the intermediate type is illegal, to avoid said illegality, e.g., (v4i16 (concat_vectors (v2i16 (truncate (v2i64))), (v2i16 (truncate (v2i64))))) -> (v4i16 (truncate (v4i32 (concat_vectors (v2i32 (truncate (v2i64))), (v2i32 (truncate (v2i64))))))) This isn't really target-specific, and, as such, would best go in the DAGCombiner. However, ISD::TRUNCATE legality isn't keyed on both input and result type, so we might generate worse code when we don't know better. On AArch64 we know it's fine for v2i64->v4i16 and v4i32->v8i8. rdar://20022387 llvm-svn: 232459
* [AArch64] Factor out N->getOperand()s; format. NFCI.Ahmed Bougacha2015-03-171-13/+12
| | | | llvm-svn: 232458
* Fix ODR violations caused by putting anonymous namespaces in header files (andRichard Smith2015-03-172-4/+0
| | | | | | | | | | then using the symbols from those anonymous namespaces from outside the anonymous namespace). This was "detected" by causing the modules selfhost to fail in some cases. The corresponding Clang bug was fixed in r232455. llvm-svn: 232457
* [Object][ELF] ELFEntityIterator : Add operators for random accessShankar Easwaran2015-03-171-0/+12
| | | | | | | Add operators add/subtract for random access. This is essentially used by lld. llvm-svn: 232453
* [IRCE] Re-commit tests cases.Sanjoy Das2015-03-172-0/+74
| | | | | | | | Re-commit the test cases added in r232444. These now use -irce-print-changed-loops and -irce-print-range-checks so they run correctly on a without asserts build of llvm. llvm-svn: 232452
* [IRCE] Add a -irce-print-range-checks option.Sanjoy Das2015-03-171-6/+15
| | | | | | | -irce-print-range-checks prints out the set of range checks recognized by IRCE. llvm-svn: 232451
* MapMetadata: Allow unresolved metadata if it won't changeDuncan P. N. Exon Smith2015-03-173-1/+33
| | | | | | | | | Allow unresolved nodes through the `MapMetadata()` if `RF_NoModuleLevelChanges`, since there's no remapping to do anyway. This fixes PR22929. I'll add a clang test as a follow-up. llvm-svn: 232449
* [IRCE] Delete two tests.Sanjoy Das2015-03-172-74/+0
| | | | | | | | I accidentally checked in two tests that used -debug-only -- these fail on a release LLVM build. Temporarily delete these from the repo to keep the bots green while I fix this locally. llvm-svn: 232446
* [IRCE] Add comments, NFC.Sanjoy Das2015-03-171-4/+27
| | | | | | | This change adds some comments that justify why a potentially overflowing operation is safe. llvm-svn: 232445
* [IRCE] Support half-range checks.Sanjoy Das2015-03-173-128/+226
| | | | | | | | | | | | This change to IRCE gets it to recognize "half" range checks. Half range checks are range checks that only either check if the index is `slt` some positive integer ("length") or if the index is `sge` `0`. The range solver does not try to be clever / aggressive about solving half-range checks -- it transforms "I < L" to "0 <= I < L" and "0 <= I" to "0 <= I < INT_SMAX". This is safe, but not always optimal. llvm-svn: 232444
* llvm-cov: Warn instead of error if a .gcda has arcs from an exit blockJustin Bogner2015-03-174-1/+7
| | | | | | Patch by Vanderson M. Rosario. Thanks! llvm-svn: 232443
* AsmWriter: Assert on unresolved metadata nodesDuncan P. N. Exon Smith2015-03-171-0/+2
| | | | | | | | | | | | Assert that `MDNode::isResolved()`. While in theory the `Verifier` should catch this, it doesn't descend into all debug info, and the `DebugInfoVerifier` doesn't call into the `Verifier`. Besides, this helps to catch bugs when `-disable-verify=true`. Note that I haven't come across a place where this fails with clang today, so no testcase. llvm-svn: 232442
* GCOV: Make the exit block placement from r223193 optionalJustin Bogner2015-03-163-14/+33
| | | | | | | | By default we want our gcov emission to stay 4.2 compatible, which means we need to continue emit the exit block last by default. We add an option to emit it before the body for users that need it. llvm-svn: 232438
* LowerBitSets: do not use private aliases at all on Darwin.Peter Collingbourne2015-03-162-16/+31
| | | | | | | LLVM currently turns these into linker-private symbols, which can be dead stripped by the Darwin linker. llvm-svn: 232435
* Pass in a "const Triple &T" instead of a raw StringRef.Rafael Espindola2015-03-1613-39/+32
| | | | llvm-svn: 232429
* Remove unused argument. NFC.Rafael Espindola2015-03-1610-32/+29
| | | | llvm-svn: 232428
OpenPOWER on IntegriCloud