summaryrefslogtreecommitdiffstats
path: root/llvm/include
Commit message (Collapse)AuthorAgeFilesLines
* More MSan/ASan annotations.Evgeniy Stepanov2013-02-043-7/+14
| | | | | | | | | | | | | | This change lets us bootstrap LLVM/Clang under ASan and MSan. It contains fixes for 2 issues: - X86JIT reads return address from stack, which MSan does not know is initialized. - bugpoint tests run binaries with RLIMIT_AS. This does not work with certain Sanitizers. We are no longer including config.h in Compiler.h with this change. llvm-svn: 174306
* Added instance variable/initializers/getter/setters for new keyword ↵Michael Gottesman2013-02-031-8/+20
| | | | | | | | | | | | | | externally initialized to GlobalVariable. No *TRUE* functionality change. I am going to add in the actual test cases with the actual functionality changes in a later patch because I want to include some test cases. To be clear when I say no *TRUE* functionality change I mean that this patch (like it says in the title) only contains getters/setters and sets up a default initial value of the instance variable to false so that this patch does not affect any other uses of Global Variable.h. llvm-svn: 174295
* [Object][Archive] Improve performance.Michael J. Spencer2013-02-031-5/+93
| | | | | | | | | | | | Improve performance of iterating over children and accessing the member file buffer by caching the file size and moving code out to the header. This also makes getBuffer return a StringRef instead of a MemoryBuffer. Both fixing a memory leak and removing a malloc. This takes getBuffer from ~10% of the time in lld to unmeasurable. llvm-svn: 174272
* [Support] Add LLVM_IS_UNALIGNED_ACCESS_FAST.Michael J. Spencer2013-02-031-0/+13
| | | | llvm-svn: 174271
* Remove AttrBuilder::Raw().Bill Wendling2013-02-021-2/+0
| | | | llvm-svn: 174251
* Correct indentation for dumping LexicalScope.Manman Ren2013-02-021-7/+1
| | | | llvm-svn: 174237
* Change the AttributeImpl to hold a single Constant* for the values.Bill Wendling2013-02-011-3/+5
| | | | | | This Constant could be an aggregate to represent multiple values. llvm-svn: 174228
* Remove one of the odious 'Raw' methods.Bill Wendling2013-02-011-5/+2
| | | | llvm-svn: 174130
* Add iterators to the AttributeSet class so that we can access the Attributes ↵Bill Wendling2013-01-311-0/+5
| | | | | | in a nice way. llvm-svn: 174120
* Fix a think-o in the condition here. =[ I would commit the test thatChandler Carruth2013-01-311-1/+1
| | | | | | | | | caught this, but I want that in a separate commit in case there is a need to revert the actual functional bit as part of reverting other patches. This way, the commits relating to just getting the RTTI bits in place are separate from the functional changes that start using them. llvm-svn: 174117
* s/AttrBuilder::addAttributes/AttrBuilder::addAttribute/g because that's more ↵Bill Wendling2013-01-311-4/+4
| | | | | | descriptive of what it actually is. llvm-svn: 174116
* Give the MCStreamer class hierarchy LLVM RTTI facilities for use withChandler Carruth2013-01-313-10/+41
| | | | | | | | | | | | | | | | isa<> and dyn_cast<>. In several places, code is already hacking around the absence of this, and there seem to be several interfaces that might be lifted and/or devirtualized using this. This change was based on a discussion with Jim Grosbach about how best to handle testing for specific MCStreamer subclasses. He said that this was the correct end state, and everything else was too hacky so I decided to just make it so. No functionality should be changed here, this is just threading the kind through all the constructors and setting up the classof overloads. llvm-svn: 174113
* Remove the AttrBuilder form of the Attribute::get creators.Bill Wendling2013-01-311-3/+2
| | | | | | | | | | | | | The AttrBuilder is for building a collection of attributes. The Attribute object holds only one attribute. So it's not really useful for the Attribute object to have a creator which takes an AttrBuilder. This has two fallouts: 1. The AttrBuilder no longer holds its internal attributes in a bit-mask form. 2. The attributes are now ordered alphabetically (hence why the tests have changed). llvm-svn: 174110
* Document another instsimplify assumption.Dan Gohman2013-01-311-0/+7
| | | | llvm-svn: 174100
* [PEI] Pass the frame index operand number to the eliminateFrameIndex function.Chad Rosier2013-01-311-3/+4
| | | | | | | Each target implementation was needlessly recomputing the index. Part of rdar://13076458 llvm-svn: 174083
* Add AArch64 as an experimental target.Tim Northover2013-01-315-0/+180
| | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for AArch64 (ARM's 64-bit architecture) to LLVM in the "experimental" category. Currently, it won't be built unless requested explicitly. This initial commit should have support for: + Assembly of all scalar (i.e. non-NEON, non-Crypto) instructions (except the late addition CRC instructions). + CodeGen features required for C++03 and C99. + Compilation for the "small" memory model: code+static data < 4GB. + Absolute and position-independent code. + GNU-style (i.e. "__thread") TLS. + Debugging information. The principal omission, currently, is performance tuning. This patch excludes the NEON support also reviewed due to an outbreak of batshit insanity in our legal department. That will be committed soon bringing the changes to precisely what has been approved. Further reviews would be gratefully received. llvm-svn: 174054
* Annotate BumpPtrAllocator for MemorySanitizer.Evgeniy Stepanov2013-01-312-0/+21
| | | | | | | This change adds MemorySanitizer annotations to BumpPtrAllocator to improve report quality. llvm-svn: 174051
* Remove the Attribute::hasAttributes() function.Bill Wendling2013-01-311-3/+0
| | | | | | | That function doesn't make sense anymore because there's only one attribute per Attribute object now. llvm-svn: 174044
* Revert r174026, "Remove Attribute::hasAttributes() and make ↵NAKAMURA Takumi2013-01-311-3/+6
| | | | | | | | Attribute::hasAttribute() private." It broke many hosts to crash. llvm-svn: 174035
* Move isKnownNonNull out of AliasAnalysis.h and into ValueTracking.cpp sinceDan Gohman2013-01-312-5/+5
| | | | | | | it isn't really an AliasAnalysis concept, and ValueTracking has similar things that it could plausibly share code with some day. llvm-svn: 174027
* Remove Attribute::hasAttributes() and make Attribute::hasAttribute() private.Bill Wendling2013-01-311-6/+3
| | | | | | | | The Attribute::hasAttributes() is kind of meaningless since an Attribute can have only one attribute. And we would rather people use the 'operator==' instead of Attribute::hasAttribute(). llvm-svn: 174026
* Change GetPointerBaseWithConstantOffset's DataLayout argument from aDan Gohman2013-01-311-2/+2
| | | | | | | reference to a pointer, so that it can handle the case where DataLayout is not available and behave conservatively. llvm-svn: 174024
* Make the AttrBuilder creation method of Attribute private so that people ↵Bill Wendling2013-01-311-1/+2
| | | | | | won't use it. llvm-svn: 174023
* Revert for now:Bill Wendling2013-01-311-1/+2
| | | | | | | | | --- Reverse-merging r174010 into '.': U include/llvm/IR/Attributes.h U lib/IR/Verifier.cpp U lib/IR/Attributes.cpp llvm-svn: 174012
* Remove the AttrBuilder version of the Attribute::get function.Bill Wendling2013-01-311-2/+1
| | | | | | | | The AttrBuilder is there to build up multiple attributes. The Attribute class represents only one attribute at a time. So remove this unnecessary builder creator method. llvm-svn: 174010
* Make sure that the Attribute object represents one attribute only.Bill Wendling2013-01-311-8/+7
| | | | | | | | Several places were still treating the Attribute object as respresenting multiple attributes. Those places now use the AttributeSet to represent multiple attributes. llvm-svn: 174003
* Remove addRetAttributes and addFnAttributes, which aren't useful abstractions.Bill Wendling2013-01-301-12/+0
| | | | llvm-svn: 173992
* Convert typeIncompatible to return an AttributeSet.Bill Wendling2013-01-301-6/+3
| | | | | | | There are still places which treat the Attribute object as a collection of attributes. I'm systematically removing them. llvm-svn: 173990
* Doxygenified some comments in IRBuilder.h.Michael Gottesman2013-01-301-8/+9
| | | | llvm-svn: 173986
* Removed CreateFPExtOrFPTrunc for now until I have the time to get in my ↵Michael Gottesman2013-01-301-14/+0
| | | | | | | | | | vector convert patch. What I thought was going to be a quick thing has extended out a little bit in time *sigh*. So after some thought in order to not cruft up the tree I am removing this for now since it is the right thing to do. llvm-svn: 173985
* Encapsulate testing that we have an iOS Triple in Triple.h in the method isiOSMichael Gottesman2013-01-301-1/+6
| | | | | | | so we follow the convention that all other platforms follow by having an is* test method. llvm-svn: 173983
* Use the number of 'slots' in the AttributeSetImpl being 0 to indicate that ↵Bill Wendling2013-01-301-1/+1
| | | | | | the AttributeSet is empty. llvm-svn: 173962
* Clean up whitespace and indentation a bitEli Bendersky2013-01-301-5/+1
| | | | llvm-svn: 173960
* LLDB uses ConvertUTF16toUTF8, remove #ifdefDmitri Gribenko2013-01-301-2/+0
| | | | llvm-svn: 173936
* Move UTF conversion routines from clang/lib/Basic to llvm/lib/SupportDmitri Gribenko2013-01-301-0/+230
| | | | | | This is required to use them in TableGen. llvm-svn: 173923
* This patch implements runtime ARM specificJack Carter2013-01-301-1/+9
| | | | | | | | setting of ELF header e_flags. Contributer: Jack Carter llvm-svn: 173885
* This patch reworks how llvm targets set Jack Carter2013-01-302-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | and update ELF header e_flags. Currently gathering information such as symbol, section and data is done by collecting it in an MCAssembler object. From MCAssembler and MCAsmLayout objects ELFObjectWriter::WriteObject() forms and streams out the ELF object file. This patch just adds a few members to the MCAssember class to store and access the e_flag settings. It allows for runtime additions to the e_flag by assembler directives. The standalone assembler can get to MCAssembler from getParser().getStreamer().getAssembler(). This patch is the generic infrastructure and will be followed by patches for ARM and Mips for their target specific use. Contributer: Jack Carter llvm-svn: 173882
* [autoconf]: Fix description in HAVE_CRASHREPORTER_INFO.NAKAMURA Takumi2013-01-302-2/+2
| | | | | | | http://llvm-reviews.chandlerc.com/D332 Signed-off-by: Saleem Abdulrasool <compnerd@compnerd.org> llvm-svn: 173879
* Add a couple of accessor methods to get the kind and values of an attribute.Bill Wendling2013-01-291-0/+7
| | | | llvm-svn: 173828
* Convert getAttributes() to return an AttributeSetNode.Bill Wendling2013-01-291-1/+1
| | | | | | | The AttributeSetNode contains all of the attributes. This removes one (hopefully last) use of the Attribute class as a container of multiple attributes. llvm-svn: 173761
* Teach SDISel to combine fsin / fcos into a fsincos node if the followingEvan Cheng2013-01-292-0/+8
| | | | | | | | | | | | | | | | | | conditions are met: 1. They share the same operand and are in the same BB. 2. Both outputs are used. 3. The target has a native instruction that maps to ISD::FSINCOS node or the target provides a sincos library call. Implemented the generic optimization in sdisel and enabled it for Mac OSX. Also added an additional optimization for x86_64 Mac OSX by using an alternative entry point __sincos_stret which returns the two results in xmm0 / xmm1. rdar://13087969 PR13204 llvm-svn: 173755
* Use an AttrBuilder to generate the correct AttributeSet.Bill Wendling2013-01-291-5/+6
| | | | | | | | | We no longer accept an encoded integer as representing all of the attributes. Convert this via the AttrBuilder class into an AttributeSet with the correct representation (an AttributeSetImpl that holds a list of Attribute objects). llvm-svn: 173750
* S'more small non-functional changes in comments and #includes.Bill Wendling2013-01-291-10/+3
| | | | llvm-svn: 173738
* Reorder some functions and add comments. No functionality change.Bill Wendling2013-01-291-47/+54
| | | | llvm-svn: 173733
* Try to appease some broken compilers by using 'unsigned' instead of 'uint64_t'.Bill Wendling2013-01-281-4/+4
| | | | llvm-svn: 173725
* Remove the AttributeWithIndex class.Bill Wendling2013-01-281-19/+12
| | | | | | | The AttributeWithIndex class exposed the interior structure of the AttributeSet class. That was gross. Remove it and all of the code that relied upon it. llvm-svn: 173722
* Add a comment mentioning that InstructionSimplify routines do,Dan Gohman2013-01-281-0/+6
| | | | | | in fact, resolve undef uses. llvm-svn: 173721
* Mid-air collision. reapply r173656.Bill Wendling2013-01-281-5/+5
| | | | llvm-svn: 173661
* Rewrite the removeAttr() method.Bill Wendling2013-01-281-10/+0
| | | | | | | | | | This now uses the AttributeSet object instead of the Attribute / AttributeWithIndex objects. It's fairly simple now. It goes through all of the subsets before the one we're modifying, adds them to the new set. It then adds the modified subset (with the requested attributes removed). And then adds the rest of the subsets. llvm-svn: 173660
* Rewrite the addAttr() method.Bill Wendling2013-01-281-16/+15
| | | | | | | | | This now uses the AttributeSet object instead of the Attribute / AttributeWithIndex objects. It's fairly simple now. It goes through all of the subsets before the one we're modifying, adds them to the new set. It then adds the modified subset. And then adds the rest of the subsets. llvm-svn: 173659
OpenPOWER on IntegriCloud