summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Deserialize macro history when we deserialize an identifier that hasDouglas Gregor2012-10-1112-116/+353
| | | | | | | | | | | | | | | | | | | | | | | | macro history. When deserializing macro history, we arrange history such that the macros that have definitions (that haven't been #undef'd) and are visible come at the beginning of the list, which is what the preprocessor and other clients of Preprocessor::getMacroInfo() expect. If additional macro definitions become visible later, they'll be moved toward the front of the list. Note that it's possible to have ambiguities, but we don't diagnose them yet. There is a partially-implemented design decision here that, if a particular identifier has been defined or #undef'd within the translation unit, that definition (or #undef) hides any macro definitions that come from imported modules. There's still a little work to do to ensure that the right #undef'ing happens. Additionally, we'll need to scope the update records for #undefs, so they only kick in when the submodule containing that update record becomes visible. llvm-svn: 165682
* Teach set-xcode-analyzer that the new default value for ExecPath is ↵Ted Kremenek2012-10-111-2/+13
| | | | | | CLANG_ANALYZER_EXEC. llvm-svn: 165681
* Don't crash if a .ll file contains a forward-reference that looks like a globalNick Lewycky2012-10-112-0/+7
| | | | | | | | | value but later turns out to be a function. Unfortunately, we can't fold tests into a single file because we only get one error out of llvm-as. llvm-svn: 165680
* Minor cleanup for r165678; no functional change.Eli Friedman2012-10-111-1/+1
| | | | llvm-svn: 165679
* Make sure we perform the variadic method check correctly for calls to a ↵Eli Friedman2012-10-113-2/+40
| | | | | | member operator(). PR14057. llvm-svn: 165678
* Change MachineInstrBuilder::addDisp to copy over target flags by default.Evan Cheng2012-10-112-9/+15
| | | | llvm-svn: 165677
* Reapply "[analyzer] Treat fields of unions as having symbolic offsets."Jordan Rose2012-10-102-1/+55
| | | | | | | | This time, actually uncomment the code that's supposed to fix the problem. This reverts r165671 / 8ceb837585ed973dc36fba8dfc57ef60fc8f2735. llvm-svn: 165676
* Fix a crash-on-invalid when parsing a reference to an invalid auto declarationDavid Blaikie2012-10-103-2/+7
| | | | | | | | | auto x((unknown)); int& y = x; would crash because we were not flagging 'x' as an invalid declaration here. llvm-svn: 165675
* objective-C IRgen: When sending a method to 'super'Fariborz Jahanian2012-10-102-20/+23
| | | | | | | | | in a category class method, don't read 'isa' pointer. Instead, save the desired OBJC_METACLASS_$_ClassName in __DATA,__objc_superrefs and read that without reading any isa pointers. // rdar://12459358 llvm-svn: 165674
* Add isel patterns for v2f32 / v4f32 neon.vbsl intrinsics. rdar://12471808Evan Cheng2012-10-102-0/+26
| | | | llvm-svn: 165673
* <rdar://problem/12462744> Implement a new SBDeclaration class to wrap an ↵Enrico Granata2012-10-1014-0/+406
| | | | | | lldb_private::Declaration - make a GetDeclaration() API on SBValue to return a declaration. This will only work for vroot variables as they are they only objects for which we currently provide a valid Declaration llvm-svn: 165672
* Temporarily Revert "[analyzer] Treat fields of unions as having symbolic ↵Eric Christopher2012-10-102-55/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | offsets." Author: Jordan Rose <jordan_rose@apple.com> Date: Wed Oct 10 21:31:21 2012 +0000 [analyzer] Treat fields of unions as having symbolic offsets. This allows only one field to be active at a time in RegionStore. This isn't quite the correct behavior for unions, but it at least would handle the case of "value goes in, value comes out" from the same field. RegionStore currently has a number of places where any access to a union results in UnknownVal being returned. However, it is clearly missing some cases, or the original issue wouldn't have occurred. It is probably now safe to remove those changes, but that's a potentially destabilizing change that should wait for more thorough testing. Fixes PR14054. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165660 91177308-0d34-0410-b5e6-96231b3b80d8 This reverts commit cf9030e480f77ab349672f00ad302e216c26c92c. llvm-svn: 165671
* Add getters for the MIPS TargetTransform classesNadav Rotem2012-10-101-0/+7
| | | | llvm-svn: 165670
* Remove unused member variable introduced in r165665.David Blaikie2012-10-101-1/+0
| | | | llvm-svn: 165669
* Formatting and 80-col.Eric Christopher2012-10-101-11/+11
| | | | llvm-svn: 165668
* Revert "[Options] make Option a value type."Eric Christopher2012-10-109-78/+96
| | | | | | | | | | | | | Author: Michael J. Spencer <bigcheesegs@gmail.com> Date: Wed Oct 10 21:48:26 2012 +0000 [Options] make Option a value type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165663 91177308-0d34-0410-b5e6-96231b3b80d8 This reverts commit 0464fd5e4ce2193e786e5adcab6b828f9366dae3. llvm-svn: 165667
* Add -mattr=+altivec and remove XFAIL.Bill Schmidt2012-10-101-3/+2
| | | | llvm-svn: 165666
* Add a new interface to allow IR-level passes to access codegen-specific ↵Nadav Rotem2012-10-1043-317/+811
| | | | | | information. llvm-svn: 165665
* XFAIL for all targets pending investigationBill Schmidt2012-10-101-2/+3
| | | | llvm-svn: 165664
* [Options] make Option a value type.Michael J. Spencer2012-10-109-96/+78
| | | | llvm-svn: 165663
* Move the scratch buffer allocation for x86 instructions from being allocated ↵Jason Molenda2012-10-101-7/+9
| | | | | | | | | each instruction, to once in the AssemblyParse_x86 ctor. an instruction llvm-svn: 165662
* Patch by Shuxin Yang <shuxin.llvm@gmail.com>.Nadav Rotem2012-10-102-0/+56
| | | | | | | | | | | | | | | | | | | Original message: The attached is the fix to radar://11663049. The optimization can be outlined by following rules: (select (x != c), e, c) -> select (x != c), e, x), (select (x == c), c, e) -> select (x == c), x, e) where the <c> is an integer constant. The reason for this change is that : on x86, conditional-move-from-constant needs two instructions; however, conditional-move-from-register need only one instruction. While the LowerSELECT() sounds to be the most convenient place for this optimization, it turns out to be a bad place. The reason is that by replacing the constant <c> with a symbolic value, it obscure some instruction-combining opportunities which would otherwise be very easy to spot. For that reason, I have to postpone the change to last instruction-combining phase. The change passes the test of "make check-all -C <build-root/test" and "make -C project/test-suite/SingleSource". llvm-svn: 165661
* [analyzer] Treat fields of unions as having symbolic offsets.Jordan Rose2012-10-102-1/+55
| | | | | | | | | | | | | | | | | This allows only one field to be active at a time in RegionStore. This isn't quite the correct behavior for unions, but it at least would handle the case of "value goes in, value comes out" from the same field. RegionStore currently has a number of places where any access to a union results in UnknownVal being returned. However, it is clearly missing some cases, or the original issue wouldn't have occurred. It is probably now safe to remove those changes, but that's a potentially destabilizing change that should wait for more thorough testing. Fixes PR14054. llvm-svn: 165660
* When generating spill and reload code for vector registers on PowerPC,Bill Schmidt2012-10-102-6/+31
| | | | | | | | | | | | the compiler makes use of GPR0. However, there are two flavors of GPR0 defined by the target: the 32-bit GPR0 (R0) and the 64-bit GPR0 (X0). The spill/reload code makes use of R0 regardless of whether we are generating 32- or 64-bit code. This patch corrects the problem in the obvious manner, using X0 and ADDI8 for 64-bit and R0 and ADDI for 32-bit. llvm-svn: 165658
* The PowerPC VRSAVE register has been somewhat of an odd beast sinceBill Schmidt2012-10-103-6/+29
| | | | | | | | | | | | | | | | | the Altivec extensions were introduced. Its use is optional, and allows the compiler to communicate to the operating system which vector registers should be saved and restored during a context switch. In practice, this information is ignored by the various operating systems using the SVR4 ABI; the kernel saves and restores the entire register state. Setting the VRSAVE register is no longer performed by the AIX XL compilers, the IBM i compilers, or by GCC on Power Linux systems. It seems best to avoid this logic within LLVM as well. This patch avoids generating code to update and restore VRSAVE for the PowerPC SVR4 ABIs (32- and 64-bit). The code remains in place for the Darwin ABI. llvm-svn: 165656
* Add in support for expansion of all of the comparison operations to the ↵Micah Villmow2012-10-101-17/+62
| | | | | | | | | | absolute minimum required set. This allows a backend to expand any arbitrary set of comparisons as long as a minimum set is supported. The minimum set of required instructions is ISD::AND, ISD::OR, ISD::SETO(or ISD::SETOEQ) and ISD::SETUO(or ISD::SETUNE). Everything is expanded into one of two patterns: Pattern 1: (LHS CC1 RHS) Opc (LHS CC2 RHS) Pattern 2: (LHS CC1 LHS) Opc (RHS CC2 RHS) llvm-svn: 165655
* Revert r165652: "Remove unnecessary RTTI from the build."Sean Silva2012-10-104-0/+8
| | | | | | ... Apparently the RTTI is still necessary for some reason. llvm-svn: 165654
* Make -Wshift-op-parentheses a subgroup of -WparenthesesDavid Blaikie2012-10-102-0/+9
| | | | llvm-svn: 165653
* Remove unnecessary RTTI from the build.Sean Silva2012-10-104-8/+0
| | | | llvm-svn: 165652
* tblgen: Compile TableGen without RTTI.Sean Silva2012-10-104-6/+0
| | | | | | TableGen no longer needs RTTI! llvm-svn: 165651
* tblgen: Build clang-tblgen without RTTI.Sean Silva2012-10-102-2/+0
| | | | | | clang-tblgen no longer needs RTTI! llvm-svn: 165650
* tblgen: Use LLVM-style RTTI in clang-tblgenSean Silva2012-10-104-25/+24
| | | | llvm-svn: 165649
* tblgen: Move mini Type hierarchy to LLVM-style RTTI.Sean Silva2012-10-101-4/+22
| | | | llvm-svn: 165648
* tblgen: Use semantically correct RTTI functions.Sean Silva2012-10-1011-78/+57
| | | | | | Also, some minor cleanup. llvm-svn: 165647
* tblgen: Mechanically move dynamic_cast<> to dyn_cast<>.Sean Silva2012-10-1015-192/+192
| | | | | | | | | | Some of these dyn_cast<>'s would be better phrased as isa<> or cast<>. That will happen in a future patch. There are also two dyn_cast_or_null<>'s slipped in instead of dyn_cast<>'s, since they were causing crashes with just dyn_cast<>. llvm-svn: 165646
* tblgen: Put dyn_cast<> machinery in place for Init hierarchy.Sean Silva2012-10-101-20/+118
| | | | llvm-svn: 165645
* Add the testcase from pr13254 (the old scalarreply pass handles this wrong;Duncan Sands2012-10-101-0/+16
| | | | | | the new sroa pass handles it right). llvm-svn: 165644
* [Doc parsing] This patch searches overridden objc/c++Fariborz Jahanian2012-10-1010-55/+255
| | | | | | | | | | methods looking for documentation on a particular base class inherited by any method that overrides the base class. In case of redeclaration, as when objc method is defined in the implementation, it also looks up for documentation in class/class extension being redeclared. llvm-svn: 165643
* Change the Thread constructor over to take a Process& rather than a ↵Jim Ingham2012-10-1026-51/+369
| | | | | | | | | | | | | ProcessSP. We can't create Threads with a NULL ProcessSP, so it makes no sense to use the SP. Then make the Thread a Broadcaster, and get it to broadcast when the selected frame is changed (but only from the Command Line) and when Thread::ReturnFromFrame changes the stack. Made the Driver use this notification to print the new thread status rather than doing it in the command. Fixed a few places where people were setting their broadcaster class by hand rather than using the static broadcaster class call. <rdar://problem/12383087> llvm-svn: 165640
* Remove dead variable.Bill Wendling2012-10-101-1/+0
| | | | llvm-svn: 165639
* Specify CPU model to avoid breaking ATOM buildsMichael Liao2012-10-102-4/+4
| | | | llvm-svn: 165638
* Remove unused argument.Bill Wendling2012-10-101-1/+1
| | | | llvm-svn: 165636
* [analyzer] Don't run non-path-sensitive checks on system headers...Jordan Rose2012-10-103-24/+74
| | | | | | | | | | | | | | | ...but do run them on user headers. Previously, we were inconsistent here: non-path-sensitive checks on code /bodies/ were only run in the main source file, but checks on /declarations/ were run in /all/ headers. Neither of those is the behavior we want. Thanks to Sujit for pointing this out! <rdar://problem/12454226> llvm-svn: 165635
* [analyzer] Fix typo: s/HandleDeclsGallGraph/HandleDeclsCallGraph/gJordan Rose2012-10-101-3/+3
| | | | | | No functionality change. llvm-svn: 165634
* docs: Propagate fix from r165632 to other docs.Sean Silva2012-10-101-2/+2
| | | | | | | There are only two other instances of using `.. code::` instead of `.. code-block::`. llvm-svn: 165633
* docs: Attempt to fix PR14053.Sean Silva2012-10-101-29/+29
| | | | | | | | | | | | | | | Hypothesis 1: use of `.. code::` directive instead of `.. code-block::` is causing Sphinx to discard the block. On my machine, `.. code::` renders fine. However, I don't think that `.. code::` is actually a legit Sphinx directive. I believe that on my machine Sphinx is falling back to just displaying it monospace with no syntax, whereas llvm.org's Sphinx is just discarding it. This is truly "remote debugging" since I can't reproduce this on my machine. It would be helpful to be able to see the llvm.org Sphinx build logs; if that's possible please let me know. llvm-svn: 165632
* Add support for FP_ROUND from v2f64 to v2f32Michael Liao2012-10-106-15/+121
| | | | | | | | | | - Due to the current matching vector elements constraints in ISD::FP_ROUND, rounding from v2f64 to v4f32 (after legalization from v2f32) is scalarized. Add a customized v2f32 widening to convert it into a target-specific X86ISD::VFPROUND to work around this constraints. llvm-svn: 165631
* Don't make regexp commands as regular commands - they are "short cuts" and ↵Jim Ingham2012-10-101-1/+5
| | | | | | users should be able to override them with "unalias" but you can't unalias normal commands. llvm-svn: 165630
* -Warc-repeated-use-of-weak: look through explicit casts on assigned values.Jordan Rose2012-10-102-1/+12
| | | | | | | Reading from a weak property, casting the result, and assigning to a strong pointer should still be considered safe. llvm-svn: 165629
* Move Sema::PropertyIfSetterOrGetter to ObjCMethodDecl::findPropertyDecl.Jordan Rose2012-10-108-120/+97
| | | | | | | | Then, switch users of PropertyIfSetterOrGetter and LookupPropertyDecl (the latter by name) over to findPropertyDecl. This actually makes -Wreceiver-is-weak a bit stronger than it was before. llvm-svn: 165628
OpenPOWER on IntegriCloud