summaryrefslogtreecommitdiffstats
path: root/llvm/include
Commit message (Collapse)AuthorAgeFilesLines
...
* Increase SubtargetFeatureKV Value and Implies fields to 64 bits since some ↵Evan Cheng2011-04-151-3/+3
| | | | | | targets are getting very close to 32 subtarget features. Also teach tablegen to error when there are more than 64 features to guard against undefined behavior. rdar://9282332 llvm-svn: 129590
* Implements StringRef::compare with bounds. It is behaves similarly to ↵Lenny Maiorani2011-04-151-0/+6
| | | | | | strncmp(). Unit tests also included. llvm-svn: 129582
* Add 129518 back with a fix for when we are producing eh just because of ↵Rafael Espindola2011-04-151-0/+2
| | | | | | | | | debug info. Change ELF systems to use CFI for producing the EH tables. This reduces the size of the clang binary in Debug builds from 690MB to 679MB. llvm-svn: 129571
* Fix a ton of comment typos found by codespell. Patch byChris Lattner2011-04-1533-44/+44
| | | | | | Luis Felipe Strano Moraes! llvm-svn: 129558
* Revert r129518, "Change ELF systems to use CFI for producing the EH tables. ↵NAKAMURA Takumi2011-04-151-2/+0
| | | | | | | | This reduces the" It broke several builds. llvm-svn: 129557
* Add 3DNow! intrinsics.Michael J. Spencer2011-04-151-0/+77
| | | | llvm-svn: 129551
* Change ELF systems to use CFI for producing the EH tables. This reduces theRafael Espindola2011-04-141-0/+2
| | | | | | size of the clang binary in Debug builds from 690MB to 679MB. llvm-svn: 129518
* Fix whitespace and tabs.Michael J. Spencer2011-04-141-52/+52
| | | | llvm-svn: 129517
* In the pre-RA scheduler, maintain cmp+br proximity.Andrew Trick2011-04-141-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | This is done by pushing physical register definitions close to their use, which happens to handle flag definitions if they're not glued to the branch. This seems to be generally a good thing though, so I didn't need to add a target hook yet. The primary motivation is to generate code closer to what people expect and rule out missed opportunity from enabling macro-op fusion. As a side benefit, we get several 2-5% gains on x86 benchmarks. There is one regression: SingleSource/Benchmarks/Shootout/lists slows down be -10%. But this is an independent scheduler bug that will be tracked separately. See rdar://problem/9283108. Incidentally, pre-RA scheduling is only half the solution. Fixing the later passes is tracked by: <rdar://problem/8932804> [pre-RA-sched] on x86, attempt to schedule CMP/TEST adjacent with condition jump Fixes: <rdar://problem/9262453> Scheduler unnecessary break of cmp/jump fusion llvm-svn: 129508
* Add an option to not print the alias of an instruction. It defaults to "printBill Wendling2011-04-131-1/+2
| | | | | | the alias". llvm-svn: 129485
* Use positive values since the value type is unsigned. Fixes a warning on theNick Lewycky2011-04-131-2/+2
| | | | | | llvm-gcc-native-mingw32 builder. llvm-svn: 129457
* Passing unroll parameters (unroll-count, threshold, and partial unroll) via ↵Junjie Gu2011-04-131-1/+1
| | | | | | | | | LoopUnroll class's ctor. Doing so will allow multiple context with different loop unroll parameters to run. This is a minor change and no effect on existing application. llvm-svn: 129449
* Add the alias analysis to the C api.Rafael Espindola2011-04-131-0/+7
| | | | llvm-svn: 129447
* PR9214: Convert ConstantExpr::getIndices() to return an ArrayRef, plusJay Foad2011-04-131-1/+1
| | | | | | related tweaks to ExprMapKeyType. llvm-svn: 129443
* Remove some redundant llvm:: prefixes.Jay Foad2011-04-131-1/+1
| | | | llvm-svn: 129441
* Fix a comment.Jay Foad2011-04-131-1/+1
| | | | llvm-svn: 129440
* PR9214: Convert ConstantExpr::getWithOperands() to use ArrayRef.Jay Foad2011-04-131-4/+1
| | | | llvm-svn: 129439
* Fix typo in comment.Jay Foad2011-04-131-2/+2
| | | | llvm-svn: 129436
* Like the coding standards say, do not use "using namespace std".Jay Foad2011-04-131-2/+0
| | | | llvm-svn: 129435
* Recommit r129383. PreRA scheduler heuristic fixes: VRegCycle, TokenFactor ↵Andrew Trick2011-04-131-3/+7
| | | | | | | | | | | | | | | | | | | | | latency. Additional fixes: Do something reasonable for subtargets with generic itineraries by handle node latency the same as for an empty itinerary. Now nodes default to unit latency unless an itinerary explicitly specifies a zero cycle stage or it is a TokenFactor chain. Original fixes: UnitsSharePred was a source of randomness in the scheduler: node priority depended on the queue data structure. I rewrote the recent VRegCycle heuristics to completely replace the old heuristic without any randomness. To make the ndoe latency adjustments work, I also needed to do something a little more reasonable with TokenFactor. I gave it zero latency to its consumers and always schedule it as low as possible. llvm-svn: 129421
* Reapply r129401 with patch for clang.Bill Wendling2011-04-131-14/+0
| | | | llvm-svn: 129419
* Be consistent about being virtual and returning void in the cfi methods.Rafael Espindola2011-04-121-14/+13
| | | | | | Implement the ones that were missing in the asm streamer. llvm-svn: 129413
* Revert r129401 for now. Clang is using the old way of doing things.Bill Wendling2011-04-121-0/+14
| | | | llvm-svn: 129403
* Remove the unaligned load intrinsics in favor of using native unaligned loads.Bill Wendling2011-04-121-14/+0
| | | | | | | | | Now that we have a first-class way to represent unaligned loads, the unaligned load intrinsics are superfluous. First part of <rdar://problem/8460511>. llvm-svn: 129401
* MCJIT lazy relocation resolution and symbol address re-assignment.Jim Grosbach2011-04-121-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add handling for tracking the relocations on symbols and resolving them. Keep track of the relocations even after they are resolved so that if the RuntimeDyld client moves the object, it can update the address and any relocations to that object will be updated. For our trival object file load/run test harness (llvm-rtdyld), this enables relocations between functions located in the same object module. It should be trivially extendable to load multiple objects with mutual references. As a simple example, the following now works (running on x86_64 Darwin 10.6): $ cat t.c int bar() { return 65; } int main() { return bar(); } $ clang t.c -fno-asynchronous-unwind-tables -o t.o -c $ otool -vt t.o t.o: (__TEXT,__text) section _bar: 0000000000000000 pushq %rbp 0000000000000001 movq %rsp,%rbp 0000000000000004 movl $0x00000041,%eax 0000000000000009 popq %rbp 000000000000000a ret 000000000000000b nopl 0x00(%rax,%rax) _main: 0000000000000010 pushq %rbp 0000000000000011 movq %rsp,%rbp 0000000000000014 subq $0x10,%rsp 0000000000000018 movl $0x00000000,0xfc(%rbp) 000000000000001f callq 0x00000024 0000000000000024 addq $0x10,%rsp 0000000000000028 popq %rbp 0000000000000029 ret $ llvm-rtdyld t.o -debug-only=dyld ; echo $? Function sym: '_bar' @ 0 Function sym: '_main' @ 16 Extracting function: _bar from [0, 15] allocated to 0x100153000 Extracting function: _main from [16, 41] allocated to 0x100154000 Relocation at '_main' + 16 from '_bar(Word1: 0x2d000000) Resolving relocation at '_main' + 16 (0x100154010) from '_bar (0x100153000)(pcrel, type: 2, Size: 4). loaded '_main' at: 0x100154000 65 $ llvm-svn: 129388
* Remove LastOffset from the asm parser.Rafael Espindola2011-04-121-0/+1
| | | | llvm-svn: 129378
* Fix the case of a .cfi_rel_offset before any .cfi_def_cfa_offset.Rafael Espindola2011-04-122-1/+7
| | | | llvm-svn: 129362
* Implement .cfi_same_value.Rafael Espindola2011-04-122-1/+6
| | | | llvm-svn: 129361
* Add support for line profiling. Very work-in-progress.Nick Lewycky2011-04-123-1/+5
| | | | | | | | | | Use debug info in the IR to find the directory/file:line:col. Each time that location changes, bump a counter. Unlike the existing profiling system, we don't try to look at argv[], and thusly don't require main() to be present in the IR. This matches GCC's technique where you specify the profiling flag when producing each .o file. The runtime library is minimal, currently just calling printf at program shutdown time. The API is designed to make it possible to emit GCOV data later on. llvm-svn: 129340
* Make IRBuilder support StringRef for building strings.Nick Lewycky2011-04-121-4/+6
| | | | | | Also document that the global variables produced are mergable. llvm-svn: 129330
* Tidy up a bit now that we're using the MemoryManager interface.Jim Grosbach2011-04-121-3/+0
| | | | llvm-svn: 129328
* remove the StructRetPromotion pass. It is unused, not maintained andChris Lattner2011-04-113-3/+0
| | | | | | | has some bugs. If this is interesting functionality, it should be reimplemented in the argpromotion pass. llvm-svn: 129314
* Skip a binary search when possible.Jakob Stoklund Olesen2011-04-111-0/+2
| | | | llvm-svn: 129293
* Adding support for printing operands symbolically to llvm's public 'C'Kevin Enderby2011-04-112-1/+70
| | | | | | | | | | | | | disassembler API. Hooked this up to the ARM target so such tools as Darwin's otool(1) can now print things like branch targets for example this: blx _puts instead of this: blx #-36 And even print the expression encoded in the Mach-O relocation entried for things like this: movt r0, :upper16:((_foo-_bar)+1234) llvm-svn: 129284
* Fix or remove code which seemed to think that the operand of a ConstantJay Foad2011-04-111-13/+0
| | | | | | was always a User. llvm-svn: 129272
* Don't include Operator.h from InstrTypes.h.Jay Foad2011-04-113-1/+2
| | | | llvm-svn: 129271
* Revert r129235 pending a vetting of the EH rewrite.Bill Wendling2011-04-102-9/+2
| | | | | | | | | | | | | | | | --- Reverse-merging r129235 into '.': D test/Feature/bb_attrs.ll U include/llvm/BasicBlock.h U include/llvm/Bitcode/LLVMBitCodes.h U lib/VMCore/AsmWriter.cpp U lib/VMCore/BasicBlock.cpp U lib/AsmParser/LLParser.cpp U lib/AsmParser/LLLexer.cpp U lib/AsmParser/LLToken.h U lib/Bitcode/Reader/BitcodeReader.cpp U lib/Bitcode/Writer/BitcodeWriter.cpp llvm-svn: 129259
* Beginning of the Great Exception Handling Rewrite.Bill Wendling2011-04-102-2/+9
| | | | | | | | | | | | | * Add a "landing pad" attribute to the BasicBlock. * Modify the bitcode reader and writer to handle said attribute. Later: The verifier will ensure that the landing pad attribute is used in the appropriate manner. I.e., not applied to the entry block, and applied only to basic blocks that are branched to via a `dispatch' instruction. (This is a work-in-progress.) llvm-svn: 129235
* drive by bug fix: DenseMapInfo::isEqual should be determined according toChris Lattner2011-04-091-1/+4
| | | | | | isEqual of its members, not operator==. llvm-svn: 129233
* PR9604; try to deal with RAUW updates correctly in the AST. I'm not convincedEli Friedman2011-04-091-0/+1
| | | | | | | it's completely safe to cache the AST across LICM runs even with this fix, but this fix can't hurt. llvm-svn: 129198
* fix a potentially serious bug in AliasSet::removeCallSite Chris Lattner2011-04-091-0/+1
| | | | | | | where we shrunk the list without updating the end iterator. By inspection, from PR9639. llvm-svn: 129190
* Build the Hopfield network incrementally when splitting global live ranges.Jakob Stoklund Olesen2011-04-091-0/+7
| | | | | | | | | It is common for large live ranges to have few basic blocks with register uses and many live-through blocks without any uses. This approach grows the Hopfield network incrementally around the use blocks, completely avoiding checking interference for some through blocks. llvm-svn: 129188
* fix doc comment bug, noticed by JochenChris Lattner2011-04-091-2/+2
| | | | llvm-svn: 129186
* Change -arm-trap-func= into a non-arm specific option. Now Intrinsic::trap ↵Evan Cheng2011-04-081-0/+5
| | | | | | is lowered into a call to the specified trap function at sdisel time. llvm-svn: 129152
* Refactor MCJIT 32-bit section loading.Jim Grosbach2011-04-081-1/+4
| | | | | | | Teach 32-bit section loading to use the Memory Manager interface, just like the 64-bit loading does. Tidy up a few other things here and there. llvm-svn: 129138
* Replace the old algorithm that emitted the "print the alias for an instruction"Bill Wendling2011-04-071-1/+7
| | | | | | | | | | | | | with the newer, cleaner model. It uses the IAPrinter class to hold the information that is needed to match an instruction with its alias. This also takes into account the available features of the platform. There is one bit of ugliness. The way the logic determines if a pattern is unique is O(N**2), which is gross. But in reality, the number of items it's checking against isn't large. So while it's N**2, it shouldn't be a massive time sink. llvm-svn: 129110
* Added a check in the preRA scheduler for potential interference on aAndrew Trick2011-04-071-6/+7
| | | | | | | | | induction variable. The preRA scheduler is unaware of induction vars, so we look for potential "virtual register cycles" instead. Fixes <rdar://problem/8946719> Bad scheduling prevents coalescing llvm-svn: 129100
* Expose more passes to the C API.Rafael Espindola2011-04-071-0/+12
| | | | llvm-svn: 129087
* Change -arm-divmod-libcall to a target neutral option.Evan Cheng2011-04-071-0/+4
| | | | llvm-svn: 129045
* Add support for ArrayRef in IRBuilder's CreateCall.Nick Lewycky2011-04-071-0/+6
| | | | llvm-svn: 129039
OpenPOWER on IntegriCloud