summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Removed a binary that I accidentally committed.Sean Callanan2012-04-251-0/+0
| | | | llvm-svn: 155516
* Recognize Objective-C classes with runtime classSean Callanan2012-04-255-2/+80
| | | | | | | | | | | | ObjCPlusPlus as Objective-C classes. Really the compiler should say they have Objective-C runtime class, but we should be a little more resilient (we were refusing to find ivars in those classes before). Also added a test case. llvm-svn: 155515
* Maked LLDB into a package so we can import things without poluting the ↵Greg Clayton2012-04-254-557/+110
| | | | | | | | global namespace. Enrico will follow this up with fixing the data formatter test cases that are failing. llvm-svn: 155514
* Simplify the known retain count tracking; use a boolean state insteadDan Gohman2012-04-251-41/+34
| | | | | | | of a precise count. Also, move RRInfo's Partial field into PtrState, now that it won't increase the size. llvm-svn: 155513
* Made it safe to re-import a Python module, allowingSean Callanan2012-04-251-1/+1
| | | | | | | the same test to be run multiple times in the same session. llvm-svn: 155511
* Fixing a bunch of i386 testsuite failuresEnrico Granata2012-04-252-5/+5
| | | | llvm-svn: 155510
* Change Target::ReadMemoryFromFileCache to not read from the fileJason Molenda2012-04-251-0/+5
| | | | | | | | if the section is marked as encrypted. It will likely be readable in live memory. <rdar://problem/11305675> llvm-svn: 155509
* Expand #include_next in float.h from mingw to _msc_ver.Nico Weber2012-04-241-1/+1
| | | | | | | | | | | | | | | | A test for this is checking if this compiles: #include <float.h> inline bool IsFinite(const double& number) { return _finite(number) != 0; } That depends however on either mingw or msvc being installed, and chapuni tells me there might be issues with float.h on mingw, so no automated test is added. llvm-svn: 155507
* Make the test case more robust in terms of remote testsuite execution.Johnny Chen2012-04-241-6/+4
| | | | | | rdar://problem/11312971 llvm-svn: 155505
* Forgo the selector test on i386, where we can'tSean Callanan2012-04-241-0/+4
| | | | | | | test whether an object responds to a selector from outside the process. llvm-svn: 155504
* Create an NSAutoreleasePool correctly in a testSean Callanan2012-04-241-0/+2
| | | | | | | | case so that the Objective-C runtime doesn't complain about lack of one, causing the test case to fail. llvm-svn: 155503
* Add acos, asin, ceil, fabs, floor, fmax, fmin, round, and tan to the builtinChad Rosier2012-04-241-0/+36
| | | | | | | math library functions. rdar://11251464 llvm-svn: 155502
* Add a suffix rule for compiling objc++ files and a sample directory under ↵Johnny Chen2012-04-243-2/+84
| | | | | | test/lang/objcxx. llvm-svn: 155501
* Build custom predecessor and successor lists for each basic block.Dan Gohman2012-04-241-115/+101
| | | | | | | | These lists exclude invoke unwind edges and loop backedges which are being ignored. This makes it easier to ignore them consistently. llvm-svn: 155500
* ARM: improved assembler diagnostics for missing CPU features.Jim Grosbach2012-04-245-35/+83
| | | | | | | | | | | When an instruction match is found, but the subtarget features it requires are not available (missing floating point unit, or thumb vs arm mode, for example), issue a diagnostic that identifies what the feature mismatch is. rdar://11257547 llvm-svn: 155499
* Add atan, atan2, exp, and log to the builtin math library functions.Chad Rosier2012-04-243-1/+62
| | | | | | | | | With -fno-math-errno (the default for Darwin) or -ffast-math these library function can be marked readnone enabling more opportunities for CSE and other optimizations. rdar://11251464 llvm-svn: 155498
* Fixing a typo in the previous commit that broke the buildEnrico Granata2012-04-241-1/+1
| | | | llvm-svn: 155497
* Fixing an issue where the expression parser was not correctly freeze-drying ↵Enrico Granata2012-04-243-3/+18
| | | | | | bitfields - This patch ensures that (a) freeze-drying bitfields works correctly and (b) that we actually access bitfields through IR instead of the 'frame var en lieu of expr' shortcut, for added safety in corner cases that may arise llvm-svn: 155494
* Alphabetize the builtin math library functions. No functional change intended.Chad Rosier2012-04-241-11/+11
| | | | llvm-svn: 155492
* Add a '-R' option, which is similar to '-r', except that the relocated ↵Johnny Chen2012-04-241-7/+27
| | | | | | | | | | | | | | directory, if exists, will be removed entirely before running the test suite. A usage example looks like this: test $ ./dotest.py -A x86_64 -R /tmp/x86_64 & test $ ./dotest.py -A i386 -R /tmp/i386 & where we would want to run the x86_64 and i386 archs concurrently but relocate the test suite to different directory hierarchies in order not to stump on each other's intermediate files. llvm-svn: 155491
* Let NULL and MSVC headers coexist better.Nico Weber2012-04-242-3/+22
| | | | | | Fixes the two issues mentioned in PR12146. llvm-svn: 155490
* <rdar://problem/11291668>Greg Clayton2012-04-2411-13/+444
| | | | | | | | | | | Fixed an issue that would happen when using debug map with DWARF in the .o files where we wouldn't ever track down the actual definition for a type when things were in namespaces. We now serialize the decl context information into an intermediate format which allows us to track down the correct definition for a type regardless of which DWARF symbol file it comes from. We do this by creating a "DWARFDeclContext" object that contains the DW_TAG + name for each item in a decl context which we can then use to veto potential accelerator table matches. For example, the accelerator tables store the basename of the type, so if you have "std::vector<int>", we would end up with an accelerator table entry for the type that contained "vector<int>", which we would then search for using a DWARFDeclContext object that contained: [0] DW_TAG_class_type "vector<int>" [1] DW_TAG_namespace "std" This is currently used to track down forward declarations for things like "class a::b::Foo;". llvm-svn: 155488
* RecursiveASTVisitor: Visit instantiations of member templates of classRichard Smith2012-04-242-6/+23
| | | | | | | | | | | | | | | | | | templates. In an implicit instantiation of a member class, any member templates don't get instantiated, so the existing check which only visited the instantiations of a defined template skipped these templates' instantiations. Since there is only a single declaration of a member template of a class template specialization, just use that to determine whether to visit the instantiations. This introduces a slight inconsistency in that we will visit the instantiations of such templates whether or not they are defined, but we never visit a declared-but-not-defined instantiation, so this turns out to not matter. Patch by Daniel Jasper! llvm-svn: 155487
* Fix a naughty header include that breaks "installed" builds.Andrew Trick2012-04-242-6/+16
| | | | llvm-svn: 155486
* ConstantFoldSelectInstruction swapped the operands of the select.Nadav Rotem2012-04-242-1/+14
| | | | | | Fix 12592. Patch by Matt Pharr. llvm-svn: 155480
* Fix the testcase. We do expect two vblendw on XMMs.Nadav Rotem2012-04-241-5/+6
| | | | llvm-svn: 155477
* Add a testcase for 155440Nadav Rotem2012-04-241-0/+13
| | | | llvm-svn: 155475
* modern objc translator: Allow writing of multipleFariborz Jahanian2012-04-242-31/+37
| | | | | | | declaration of __block variables on same lines with initializers. // rdsr://7547630 llvm-svn: 155473
* MachineBasicBlock::SplitCriticalEdge() should follow LLVM IR variant and ↵Evan Cheng2012-04-242-0/+76
| | | | | | refuse to break edge to EH landing pad. rdar://11300144 llvm-svn: 155470
* Add support for llvm.arm.neon.vmull* intrinsics to InstCombine. This fixesLang Hames2012-04-242-0/+103
| | | | | | <rdar://problem/11291436>. llvm-svn: 155468
* Fix a crash on valid (if UB) bitcode that is produced for some globalChandler Carruth2012-04-242-3/+16
| | | | | | | | | | | | | | | | | | | | | constants in C++11 mode. I have no idea why it required such particular circumstances to get here, the code seems clearly to rely upon unchecked assumptions. Specifically, when we decide to form an index into a struct type, we may have gone through (at least one) zero-length array indexing round, which would have left the offset un-adjusted, and thus not necessarily valid for use when indexing the struct type. This is just an canonicalization step, so the correct thing is to refuse to canonicalize nonsensical GEPs of this form. Implemented, and test case added. Fixes PR12642. Pair debugged and coded with Richard Smith. =] I credit him with most of the debugging, and preventing me from writing the wrong code. llvm-svn: 155466
* ARM: Nuke remnant bogus code.Jim Grosbach2012-04-241-2/+0
| | | | | | | | r154362 was supposed to delete this bit, but obviously didn't. rdar://11305594 llvm-svn: 155465
* Related to PR1255. Let's begin. I'll commit classes that corresponds to our ↵Stepan Dyatkovskiy2012-04-242-0/+524
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | latest PR1255 discussion posts in llvm-commits. Strategy. 0. Implement new classes. Classes doesn't affect anything. They still work with ConstantInt base values at this stage. 1. Fictitious replacement of current ConstantInt case values with ConstantRangesSet. Case ranges set will still hold single value, and ConstantInt *getCaseValue() will return it. But additionally implement new method in SwitchInst that allows to work with case ranges. Currenly I think it should be some wrapper that returns either single value or ConstantRangesSet object. 2. Step-by-step replacement of old "ConstantInt* getCaseValue()" with new alternative. Modify algorithms for all passes that works with SwitchInst. But don't modify LLParser and BitcodeReader/Writer. Still hold single value in each ConstantRangesSet object. On this stage some parts of LLVM will use old-style methods, and some ones new-style. 3. After all getCaseValue() usages will removed and whole LLVM and its clients will work in new style - modify LLParser, Reader and Writer. Remove getCaseValue(). 4. Replace ConstantInt*-based case ranges set items with APInt ones. Currently we are on Zero Stage: New classes. ConstantRangesSet. I selected ConstantArrays as case ranges set "holder" object (it is a temporary decision, I'll explain why below). The array items are may be ConstantVectors with single item, and ConstantVectors with two items (that means single number and range respectively). The ConstantInt will used as basic value representation. It will replaced with APInt then. Of course ConstantArray and ConstantVector will go away after ConstantInt => APInt replacement. New class mandatory features: - bool isSatisfies(ConstantInt *V) method (need better name?). Returns true if the given value satisfies this case. - Case's ranges and values enumeration. In some passes we need to analize each case (SwitchLowering for example). Factory + unified clusterify. I also propose to implement the factory that allows to build case object with user friendly way. I called it CRSBuilder by now. Currenly I implemented the factory that allows add,remove pairs of range+successor. It also allows add existing ConstantRangesSet decompiling it to separated ranges. Factory can emit either clusters set (single case range + successor) or the set of "ConstantRangesSet + Successor" pairs. So you can use it either as builder for new cases set for SwitchInst, or for clusterification of existing cases set. Just call Factory.optimize() and it emits optimized and sorted clusters collection for you! I tested clusterification on SelectionDAGBuilder - it works fine. Don't worry it was not included in this patch. Just new classes. Factory is a template. There are two params: SuccessorClass and IsReadonly. So you can specify what successor you need (BB or MBB). And you can also restrict your factory to use values in read-only mode (SelectionDAGBuilder need IsReadonly=true). Read-only factory couldn't build the cases ranges. llvm-svn: 155464
* objc modern rewriter: allow translation ofFariborz Jahanian2012-04-242-3/+28
| | | | | | | multiple declaration of block variables (with no initializer) on the same line. llvm-svn: 155462
* AVX: Add additional vbroadcast replacement sequences for integers.Nadav Rotem2012-04-241-3/+30
| | | | | | | Remove the v2f64 patterns because it does not match any vbroadcast instruction. llvm-svn: 155461
* cmake: new fileAndrew Trick2012-04-241-0/+1
| | | | llvm-svn: 155460
* misched: DAG builder must special case earlyclobberAndrew Trick2012-04-241-0/+9
| | | | llvm-svn: 155459
* misched: try (not too hard) to place debug values where they belongAndrew Trick2012-04-241-0/+25
| | | | llvm-svn: 155458
* misched: ignore debug values during schedulingAndrew Trick2012-04-241-6/+31
| | | | llvm-svn: 155457
* misched: DAG builder support for tracking register pressure within the ↵Andrew Trick2012-04-244-7/+65
| | | | | | | | | current scheduling region. The DAG builder is a convenient place to do it. Hopefully this is more efficient than a separate traversal over the same region. llvm-svn: 155456
* Fixed a crasher that occurs when an expressionSean Callanan2012-04-241-1/+2
| | | | | | | | | | | doesn't return a result. If that expression can't be run in the current context (for example, if it uses a function and there is no running process) then we used to try to destroy the nonexistent result variable. We now only destroy the result variable if we actually made one. llvm-svn: 155455
* RegisterPressure: A utility for computing register pressure within aAndrew Trick2012-04-242-0/+718
| | | | | | | | | | | | | | | | | | MachineInstr sequence. This uses the new target interface for tracking register pressure using pressure sets to model overlapping register classes and subregisters. RegisterPressure results can be tracked incrementally or stored at region boundaries. Global register pressure can be deduced from local RegisterPressure results if desired. This is an early, somewhat untested implementation. I'm working on testing it within the context of a register pressure reducing MachineScheduler. llvm-svn: 155454
* Add missing test cases for ARM VLD3 (single 3-element structure to all lanes)Kevin Enderby2012-04-242-0/+38
| | | | | | instructions. llvm-svn: 155453
* Changed 'cause' from 'terminate' to 'uncaught' in default_terminate_handlerHoward Hinnant2012-04-241-1/+1
| | | | llvm-svn: 155452
* objc modern rewriter: minor refactoring.Fariborz Jahanian2012-04-241-31/+17
| | | | llvm-svn: 155449
* Simplify import/export command line flags.Tobias Grosser2012-04-242-15/+11
| | | | | | | Instead of -polly-run-import-jscop and -polly-run-export-jscop, we just use -polly-import and -polly-export. llvm-svn: 155446
* Unify the optimizer selection.Tobias Grosser2012-04-243-45/+44
| | | | | | | We now support -polly-optimizer=isl, -polly-optimizer=pocc and -polly-optimizer=none. The option -polly-no-optimizer is gone. llvm-svn: 155445
* Add missing test cases for ARM VLD4 (single 4-element structure to all lanes)Kevin Enderby2012-04-242-0/+49
| | | | | | instructions. llvm-svn: 155444
* Add a FIXME for uncomplete commentGabor Greif2012-04-241-7/+7
| | | | | | | fix a typo add punctuation llvm-svn: 155443
* Adding information about what intrinsics still need to be implemented for ↵Aaron Ballman2012-04-241-0/+302
| | | | | | MSVC compatibility. llvm-svn: 155441
OpenPOWER on IntegriCloud