summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* IRCE: only touch loops that have been shown to have a highSanjoy Das2015-02-261-4/+17
| | | | | | backedge-taken count in profiliing data. llvm-svn: 230619
* IRCE: generalize to handle loops with decreasing induction variables.Sanjoy Das2015-02-265-222/+428
| | | | | | | | | IRCE can now split the iteration space for loops like: for (i = n; i >= 0; i--) a[i + k] = 42; // bounds check on access llvm-svn: 230618
* [x86] Make the vector shuffle helpers order the SDLoc and MVT arguments.Chandler Carruth2015-02-261-27/+27
| | | | | | This ordering matches that of DAG.getNode. llvm-svn: 230617
* [X86] Remove the blendps/blendpd builtins. They aren't used by the intrinsic ↵Craig Topper2015-02-263-11/+0
| | | | | | headers. We use appropriate shuffle vector instead. llvm-svn: 230616
* [X86] Correct immediate range checking for blendps/blendpd/blendpd256 builtins.Craig Topper2015-02-261-4/+4
| | | | llvm-svn: 230615
* [Core] Do not reclaim absolute atoms in resolver.Davide Italiano2015-02-262-2/+7
| | | | | | | | | | | | | This fixes a linker crash (found out while testing --gc-sections, testcase provided by Rafael Avila de Espindola). While this behaviour was found while testing ELF, it' not necessarily ELF specific and this change is (apparently) harmless on all the other drivers. Differential Revision: D7823 Reviewed by: ruiu llvm-svn: 230614
* IR: Use '= default' instead of r230609, NFCDuncan P. N. Exon Smith2015-02-261-1/+1
| | | | | | Apparently we can use this now! llvm-svn: 230613
* FileCheck: Add CHECK-SAMEDuncan P. N. Exon Smith2015-02-262-2/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add `CHECK-SAME`, which requires that the pattern matches on the *same* line as the previous `CHECK`/`CHECK-NEXT` -- in other words, no newline is allowed in the skipped region. This is similar to `CHECK-NEXT`, which requires exactly 1 newline in the skipped region. My motivation is to simplify checking the long lines of LLVM assembly for the new debug info hierarchy. This allows CHECK sequences like the following: CHECK: ![[REF]] = !SomeMDNode( CHECK-SAME: file: ![[FILE:[0-9]+]] CHECK-SAME: otherField: 93{{[,)]}} which is equivalent to: CHECK: ![[REF]] = !SomeMDNode({{.*}}file: ![[FILE:[0-9]+]]{{.*}}otherField: 93{{[,)]}} While this example just has two fields, many nodes in debug info have more than that. `CHECK-SAME` will keep the logic easy to follow. Morever, it enables interleaving `CHECK-NOT`s without allowing newlines. Consider the following: CHECK: ![[REF]] = !SomeMDNode( CHECK-SAME: file: ![[FILE:[0-9]+]] CHECK-NOT: unexpectedField: CHECK-SAME: otherField: 93{{[,)]}} CHECK-NOT: otherUnexpectedField: CHECK-SAME: ) which doesn't seem to have an equivalent `CHECK` line. llvm-svn: 230612
* [Mips] Handle -mips32r[3|5] / -mips64r[3|5] options while selecting ↵Simon Atanasyan2015-02-262-2/+115
| | | | | | | | | | | | lib/headers paths There is no supported toolchain which provides headers / libs / object files specific to the mips32r[3|5] and mips64r[3|5] ISA. So select "r2" specific folders when they are available. http://reviews.llvm.org/D7879 llvm-svn: 230611
* CGDebugInfo: Use DIImportedEntity default constructor, NFCDuncan P. N. Exon Smith2015-02-261-2/+2
| | | | | | | | | | | | | | | | Use the newly minted `DIImportedEntity` default constructor (r230609) rather than explicitly specifying `nullptr`. The latter will become ambiguous when the new debug info hierarchy is committed, since we'll have both of the following: explicit DIImportedEntity(const MDNode *); DIImportedEntity(const MDImportedEntity *); (Currently we just have the former.) A default constructor is just as clear. llvm-svn: 230610
* IR: Add default constructor for DIImportedEntityDuncan P. N. Exon Smith2015-02-261-0/+1
| | | | | | | Add a default constructor for `DIImportedEntity`, to be used in clang in a follow-up. llvm-svn: 230609
* [LoopAccesses] Add command-line option for RuntimeMemoryCheckThresholdAdam Nemet2015-02-262-11/+12
| | | | | | | | Also remove the somewhat misleading initializers from VectorizationFactor and VectorizationInterleave. They will get initialized with the default ctor since no cl::init is provided. llvm-svn: 230608
* IRCE: print newline after printing an InductiveRangeCheck.Sanjoy Das2015-02-261-0/+1
| | | | llvm-svn: 230607
* Unwind: clean up some GCC warningsSaleem Abdulrasool2015-02-262-8/+9
| | | | | | | This cleans up a set of -Wsign-conversion, -Wint-conversion, and -Wformat warnings from GCC 4.9.2 on Linux. NFC. llvm-svn: 230606
* Return a current executable's directory from ↵Oleksiy Vyalov2015-02-262-0/+8
| | | | | | | | HostInfoAndroid::ComputeSupportExeDirectory. http://reviews.llvm.org/D7876 llvm-svn: 230604
* Update assumption in template diffing about integer template arguments.Richard Trieu2015-02-262-6/+27
| | | | | | | | | | Fix for PR22017. Integer template arguments are automatically bit extended to the size of the integer type. In template diffing, evaluated expressions were not having their results extending, leading to comparing two APSInt's with different widths. Apply the proper bit extending when evaluating template arguments. This mainly affected bool template arguments. llvm-svn: 230603
* If we are trying to load the scripting resource for a module whose name ↵Enrico Granata2015-02-264-4/+40
| | | | | | | | happens to be a Python keyword, then prefix the filename with an _ (e.g. a module named def will load _def.py) Fixes rdar://13893506 llvm-svn: 230602
* [GC docs] Add example IR, assembly, and stackmaps to Statepoint documentationPhilip Reames2015-02-261-19/+103
| | | | | | | | When I originally committed the statepoint docs, I left placeholders for example IR fragments. I'm finally getting around to filling those in. I also added IR fragments to illustrate the usage of the PlaceSafepoints pass while I was at it. llvm-svn: 230601
* Split StaticAnalyzer module into three to fix a cyclic dependency. DependenciesRichard Smith2015-02-261-2/+14
| | | | | | | | | | | are now: FrontendTool -> StaticAnalyzer/Frontend -> Frontend -> StaticAnalyzer/Core The final dependency edge here is probably removable: AnalyzerOptions (and Analyses.def) should probably live in Basic rather than StaticAnalyzer/Core. llvm-svn: 230600
* Replace a few instances of NULL with nullptr.David Majnemer2015-02-262-3/+3
| | | | llvm-svn: 230599
* clang-cl: Expose -fcolor-diagnostics and -fansi-escape-codesReid Kleckner2015-02-261-4/+4
| | | | | | They don't conflict with MSVC flags. llvm-svn: 230598
* Sema: __assume with side effects shouldn't result in invalid AST nodesDavid Majnemer2015-02-262-2/+18
| | | | | | | | We'd diagnose an __assume expression which contained a function call. This would result in us wrongly returning ExprError, causing mysterious failures later on. llvm-svn: 230597
* Pass /nologo to ml64 for quieter buildsReid Kleckner2015-02-261-1/+1
| | | | | | | It still prints "Assembling path/to/X86CompilationCallback_Win64.asm", but linking does the same thing. llvm-svn: 230596
* Add self to CREDITS.txtJonathan Roelofs2015-02-261-0/+4
| | | | llvm-svn: 230595
* Add Example Sub Target.Michael J. Spencer2015-02-2610-0/+165
| | | | llvm-svn: 230594
* [ELF][x86-64] Make the X86_64LinkingContext and X86_64TargetHandler derivable.Michael J. Spencer2015-02-263-14/+21
| | | | llvm-svn: 230593
* Add remote testing support to the lit config.Jonathan Roelofs2015-02-266-21/+249
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Executors can be specified at configure time by using the -DLIBCXX_EXECUTOR="" option. Examples include: $ cmake <other_flags> -DLIBCXX_EXECUTOR="TimeoutExecutor(30,LocalExecutor())" This runs individual tests with a maximum duration $ cmake <other_flags> -DLIBCXX_EXECUTOR="SSHExecutor('hostname','username')" This runs tests on a remote target, using scp to shuttle binaries to the target, and ssh to invoke commands there. $ cmake <other_flags> -DLIBCXX_EXECUTOR="PrefixExecutor('/path/to/run/script',LocalExecutor())" This assumes the script knows how to copy run the executables passed to it, and allows for the ultimate control. This is useful for running things inside emulators like Valgrind & QEMU. TODO: This doesn't claim to support ShTest tests yet, that will take a bit more thought & finagling (I'm still not sure how to orchestrate copy-in for those cases. I've also punted on what to do about tests that read data files. The testsuite has several tests that need to read *.dat files placed next to them, and currently those aren't copied over when using, say, an SSHExecutor. The affected tests are: libc++ :: std/input.output/file.streams/fstreams/filebuf.virtuals/pbackfail.pass.cpp libc++ :: std/input.output/file.streams/fstreams/filebuf.virtuals/underflow.pass.cpp libc++ :: std/input.output/file.streams/fstreams/ifstream.assign/member_swap.pass.cpp libc++ :: std/input.output/file.streams/fstreams/ifstream.assign/move_assign.pass.cpp libc++ :: std/input.output/file.streams/fstreams/ifstream.assign/nonmember_swap.pass.cpp libc++ :: std/input.output/file.streams/fstreams/ifstream.cons/move.pass.cpp libc++ :: std/input.output/file.streams/fstreams/ifstream.cons/pointer.pass.cpp libc++ :: std/input.output/file.streams/fstreams/ifstream.cons/string.pass.cpp libc++ :: std/input.output/file.streams/fstreams/ifstream.members/close.pass.cpp libc++ :: std/input.output/file.streams/fstreams/ifstream.members/open_pointer.pass.cpp libc++ :: std/input.output/file.streams/fstreams/ifstream.members/open_string.pass.cpp libc++ :: std/input.output/file.streams/fstreams/ifstream.members/rdbuf.pass.cpp libc++ :: std/localization/locales/locale.convenience/conversions/conversions.buffer/pbackfail.pass.cpp libc++ :: std/localization/locales/locale.convenience/conversions/conversions.buffer/underflow.pass.cpp Note: One thing to watch out for when using the SSHExecutor for cross-testing is that you'll also want to specify a TargetInfo object (so that the host's features aren't used for available-features checks and flags setup). http://reviews.llvm.org/D7380 llvm-svn: 230592
* PlaceSafepoints: use IRBuilder helpersRamkumar Ramachandra2015-02-264-45/+59
| | | | | | | | | | Use the IRBuilder helpers for gc.statepoint and gc.result, instead of coding the construction by hand. Note that the gc.statepoint IRBuilder handles only CallInst, not InvokeInst; retain that part of hand-coding. Differential Revision: http://reviews.llvm.org/D7518 llvm-svn: 230591
* Silence unused variable warning in NDEBUG buildReid Kleckner2015-02-261-2/+2
| | | | llvm-svn: 230590
* Fix a [-Werror,-Wreorder] initialization ordering error.Eric Christopher2015-02-261-2/+2
| | | | llvm-svn: 230589
* docs: Document CFI padding and all-ones optimizations. Link to viewvc.Peter Collingbourne2015-02-261-1/+30
| | | | llvm-svn: 230588
* Add -fuse-line-directive flag to control usage of #line with -EReid Kleckner2015-02-269-30/+60
| | | | | | | | | | | | | | | | | | Currently -fms-extensions controls this behavior, which doesn't make much sense. It means we can't identify what is and isn't a system header when compiling our own preprocessed output, because #line doesn't represent this information. If someone is feeding Clang's preprocessed output to another compiler, they can use this flag. Fixes PR20553. Reviewers: rsmith Differential Revision: http://reviews.llvm.org/D5217 llvm-svn: 230587
* Remove some unused includes of llvm/IR headers from parts of Clang that reallyRichard Smith2015-02-262-2/+0
| | | | | | shouldn't depend on LLVM IR. llvm-svn: 230586
* Remove a FIXME.Eric Christopher2015-02-261-1/+0
| | | | | | | | | | Explanation: This function is in TargetLowering because it uses RegClassForVT which would need to be moved to TargetRegisterInfo and would necessitate moving isTypeLegal over as well - a massive change that would just require TargetLowering having a TargetRegisterInfo class member that it would use. llvm-svn: 230585
* Fix a couple of depedent->dependent typos.Eric Christopher2015-02-262-2/+2
| | | | llvm-svn: 230584
* Remove an argument-less call to getSubtargetImpl from TargetLoweringBase.Eric Christopher2015-02-2623-40/+48
| | | | | | | | | This required plumbing a TargetRegisterInfo through computeRegisterProperties and into findRepresentativeClass which uses it for register class iteration. This required passing a subtarget into a few target specific initializations of TargetLowering. llvm-svn: 230583
* MemDepPrinter: Fix some nits introduced in r228596Ramkumar Ramachandra2015-02-251-3/+3
| | | | | | Differential Revision: http://reviews.llvm.org/D7644 llvm-svn: 230582
* [GC docs] More minor word tweaks to make the GC bits clearerPhilip Reames2015-02-251-3/+6
| | | | llvm-svn: 230581
* Improvement on sized deallocation from r230160:Larisse Voufo2015-02-255-47/+147
| | | | | | Do not declare sized deallocation functions dependently on whether it is found in global scope. Instead, enforce the branching in emitted code by (1) declaring the functions extern_weak and (2) emitting sized delete expressions as a branching between both forms delete. llvm-svn: 230580
* Fix typo.Larisse Voufo2015-02-251-1/+1
| | | | llvm-svn: 230579
* Remove unused variables.Michael J. Spencer2015-02-251-4/+1
| | | | llvm-svn: 230578
* Move -fdefine-sized-deallocation and -fno-sized-deallocation options from ↵Larisse Voufo2015-02-251-1/+1
| | | | | | driver into CC1 for now. llvm-svn: 230577
* [GC Docs] Update LangRef to link to Statepoint docsPhilip Reames2015-02-252-10/+22
| | | | | | | | Add a brief section linking to the experimental statepoint intrinsics analogous to the one we have linking to patchpoint. While I'm here, cleanup some wording about what the gc "name" attribute actually means. It's not the name of a *collector* it's the name of the *strategy* which may be compatible with multiple collectors. llvm-svn: 230576
* [ELF][x86] Detemplatify ELFT. There's only a single valid instantiation.Michael J. Spencer2015-02-256-56/+64
| | | | llvm-svn: 230574
* [asan] reenable odr-violation.cc test on non-x86-64 after confirming that ↵Kostya Serebryany2015-02-251-3/+1
| | | | | | it's fixed. PR22699 llvm-svn: 230573
* [GC docs] Fill in description of the statepoint-example GC strategyPhilip Reames2015-02-252-3/+16
| | | | llvm-svn: 230572
* UBSan: Use the correct function prologue for x32.Peter Collingbourne2015-02-252-4/+19
| | | | llvm-svn: 230571
* [GC Docs] Minor wording clarificationPhilip Reames2015-02-251-3/+3
| | | | llvm-svn: 230570
* [CMake] Properly detect whether we're building runtime for i386 or i686.Alexey Samsonov2015-02-251-21/+43
| | | | llvm-svn: 230569
* MS ABI: Turn throw into std::terminate for now, make try/catch "work"David Majnemer2015-02-252-12/+27
| | | | | | | This lets us compile programs which make use of exceptional constructs statically without executing any of them dynamically. llvm-svn: 230568
OpenPOWER on IntegriCloud