summaryrefslogtreecommitdiffstats
path: root/llvm/include
Commit message (Collapse)AuthorAgeFilesLines
* Enhance MemDep: When alias analysis returns a partial alias result,Chris Lattner2011-04-261-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | return it as a clobber. This allows GVN to do smart things. Enhance GVN to be smart about the case when a small load is clobbered by a larger overlapping load. In this case, forward the value. This allows us to compile stuff like this: int test(void *P) { int tmp = *(unsigned int*)P; return tmp+*((unsigned char*)P+1); } into: _test: ## @test movl (%rdi), %ecx movzbl %ch, %eax addl %ecx, %eax ret which has one load. We already handled the case where the smaller load was from a must-aliased base pointer. llvm-svn: 130180
* Let dwarf writer allocate extra space in the debug location expression. This ↵Devang Patel2011-04-261-1/+2
| | | | | | space, if requested, will be used for complex addresses of the Blocks' variables. llvm-svn: 130178
* Improve adherence to general style, use "foo_t &x" instead of "foo_t& x"Chris Lattner2011-04-251-21/+21
| | | | llvm-svn: 130153
* allow adding a FoldingSetNodeID to a FastFoldingSetNode, resolving PR9499,Chris Lattner2011-04-251-2/+5
| | | | | | patch by Johannes Schaub! llvm-svn: 130151
* Give ImmutableIntervalMap.h an include guard.Sebastian Redl2011-04-241-0/+6
| | | | llvm-svn: 130094
* PR9214: Convert the DIBuilder API to use ArrayRef.Jay Foad2011-04-241-5/+5
| | | | llvm-svn: 130086
* Remove unused STL header includes.Jay Foad2011-04-239-10/+0
| | | | llvm-svn: 130068
* Teach FastISel to deal with instructions that have two immediate operands.Owen Anderson2011-04-221-1/+6
| | | | llvm-svn: 130033
* Let front-end tie subprogram declaration with subprogram definition directly.Devang Patel2011-04-222-1/+5
| | | | llvm-svn: 130028
* Fix comment.Eric Christopher2011-04-221-3/+3
| | | | llvm-svn: 130027
* Recommit the fix for rdar://9289512 with a couple tweaks toChris Lattner2011-04-221-1/+2
| | | | | | | | | | | fix bugs exposed by the gcc dejagnu testsuite: 1. The load may actually be used by a dead instruction, which would cause an assert. 2. The load may not be used by the current chain of instructions, and we could move it past a side-effecting instruction. Change how we process uses to define the problem away. llvm-svn: 130018
* Comment out some unused parameter names to silence out-of-tree -Wunused ↵Frits van Bommel2011-04-221-8/+8
| | | | | | warnings. llvm-svn: 129988
* include/llvm/Target/TargetAsmInfo.h: Fix a warning.NAKAMURA Takumi2011-04-221-1/+1
| | | | llvm-svn: 129972
* Compute the size of the FDE encoding instead of hard coding it. UpdateRafael Espindola2011-04-221-0/+4
| | | | | | X8664_ELFTargetObjectFile::getFDEEncoding to match reality. llvm-svn: 129959
* Remove unused argument.Rafael Espindola2011-04-212-6/+4
| | | | llvm-svn: 129955
* Add DW_OP_bit_piece.Devang Patel2011-04-211-0/+1
| | | | llvm-svn: 129945
* Refactor.Devang Patel2011-04-211-0/+3
| | | | llvm-svn: 129938
* PR9214: Convert Metadata API to use ArrayRef.Jay Foad2011-04-211-13/+8
| | | | llvm-svn: 129932
* Revert r1296656, "Fix rdar://9289512 - not folding load into compare at -O0...",Daniel Dunbar2011-04-211-2/+1
| | | | | | which broke a couple GCC test suite tests at -O0. llvm-svn: 129914
* Don't allow per-register spill size and alignment.Jakob Stoklund Olesen2011-04-211-11/+0
| | | | | | | These values were not used for anything. Spill size and alignment is a property of the register class, not the register. llvm-svn: 129906
* Add independent controls for whether GCOV profiling should emit .gcno files orNick Lewycky2011-04-212-2/+2
| | | | | | | instrument the program to emit .gcda. TODO: we should emit slightly different .gcda files when .gcno emission is off. llvm-svn: 129903
* Remove -use-divmod-libcall. Let targets opt in when they are available.Evan Cheng2011-04-201-4/+0
| | | | llvm-svn: 129884
* Prefer cheap registers for busy live ranges.Jakob Stoklund Olesen2011-04-202-0/+14
| | | | | | | | | | | | | | On the x86-64 and thumb2 targets, some registers are more expensive to encode than others in the same register class. Add a CostPerUse field to the TableGen register description, and make it available from TRI->getCostPerUse. This represents the cost of a REX prefix or a 32-bit instruction encoding required by choosing a high register. Teach the greedy register allocator to prefer cheap registers for busy live ranges (as indicated by spill weight). llvm-svn: 129864
* ARM byval support. Will be enabled by another patch to the FE. ↵Stuart Hastings2011-04-202-1/+16
| | | | | | <rdar://problem/7662569> llvm-svn: 129858
* PTX: Add intrinsics to list of built-in intrinsics, which allows them to beJustin Holewinski2011-04-202-32/+61
| | | | | | | | | | used by Clang. To help Clang integration, the PTX target has been split into two targets: ptx32 and ptx64, depending on the desired pointer size. - Add GCCBuiltin class to all intrinsics - Split PTX target into ptx32 and ptx64 llvm-svn: 129851
* Remove unused arguments.Rafael Espindola2011-04-201-2/+1
| | | | llvm-svn: 129844
* ADT/Triple: Renambe isOSX... methods to isMacOSX for consistency with the OSDaniel Dunbar2011-04-201-6/+6
| | | | | | triple component. llvm-svn: 129838
* ADT/Triple: Drop support for -osx style triples, we are going with -macosxDaniel Dunbar2011-04-191-4/+2
| | | | | | instead. llvm-svn: 129836
* ADT/Triple: Add support for Triple::MacOSX per feedback from Chris, will removeDaniel Dunbar2011-04-191-2/+4
| | | | | | Triple::OSX once Clang has moved. llvm-svn: 129833
* ADT/Triple: Add isOSDarwin() and isOSWindows() helper functions.Daniel Dunbar2011-04-191-0/+13
| | | | llvm-svn: 129815
* add a helper method.Chris Lattner2011-04-191-0/+4
| | | | llvm-svn: 129806
* ADT/Triple: Add helper function for OS X version checks.Daniel Dunbar2011-04-191-1/+24
| | | | llvm-svn: 129801
* ADT/Triple: Add isOSVersionLT helper function.Daniel Dunbar2011-04-191-0/+14
| | | | llvm-svn: 129800
* ADT/Triple: Generalize and simplify getDarwinNumber to just be getOSVersion.Daniel Dunbar2011-04-191-10/+20
| | | | llvm-svn: 129799
* ADT/Triple: Add support for more explicit "osx" and "ios" OS names.Daniel Dunbar2011-04-191-0/+2
| | | | llvm-svn: 129798
* Avoid write-after-write issue hazards for Cortex-A9.Bob Wilson2011-04-191-0/+8
| | | | | | | | | | | Add a avoidWriteAfterWrite() target hook to identify register classes that suffer from write-after-write hazards. For those register classes, try to avoid writing the same register in two consecutive instructions. This is currently disabled by default. We should not spill to avoid hazards! The command line flag -avoid-waw-hazard can be used to enable waw avoidance. llvm-svn: 129772
* Add BumpPtrAllocator::getTotalMemory() to allow clients to query how much ↵Ted Kremenek2011-04-181-0/+3
| | | | | | memory a BumpPtrAllocator allocated. llvm-svn: 129727
* Reduce clutter in asm output. Do not emit source location as comment for ↵Devang Patel2011-04-181-1/+2
| | | | | | each instruction. llvm-svn: 129715
* Make the empty StructType::get overload use an empty ArrayRef.Anders Carlsson2011-04-181-1/+1
| | | | llvm-svn: 129696
* Add a new bit that ImmLeaf's can opt into, which allows them to duck out ofChris Lattner2011-04-181-1/+7
| | | | | | | | the generated FastISel. X86 doesn't need to generate code to match ADD16ri8 since ADD16ri will do just fine. This is a small codesize win in the generated instruction selector. llvm-svn: 129692
* Make the StringMaps attached to MCContext use the MCContext's allocator; Eli Friedman2011-04-181-8/+8
| | | | | | reduces the number of calls to malloc(). llvm-svn: 129687
* Use an empty ArrayRef instead of an empty std::vector for the Function::get ↵Anders Carlsson2011-04-181-1/+1
| | | | | | overload that takes no parameters. llvm-svn: 129686
* since the VT is fixed for a ImmLeaf, there is no reason to expose it to the ↵Chris Lattner2011-04-171-2/+1
| | | | | | matching code. llvm-svn: 129677
* now that predicates have a decent abstraction layer on them, introduce a new Chris Lattner2011-04-171-0/+17
| | | | | | | | | kind of predicate: one that is specific to imm nodes. The predicate function specified here just checks an int64_t directly instead of messing around with SDNode's. The virtue of this is that it means that fastisel and other things can reason about these predicates. llvm-svn: 129675
* Rework our internal representation of node predicates to expose moreChris Lattner2011-04-171-1/+13
| | | | | | | | structure and fix some fixmes. We now have a TreePredicateFn class that handles all of the decoding of these things. This is an internal cleanup that has no impact on the code generated by tblgen. llvm-svn: 129670
* Fix rdar://9289512 - not folding load into compare at -O0Chris Lattner2011-04-171-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | The basic issue here is that bottom-up isel is matching the branch and compare, and was failing to fold the load into the branch/compare combo. Fixing this (by allowing folding into any instruction of a sequence that is selected) allows us to produce things like: cmpb $0, 52(%rax) je LBB4_2 instead of: movb 52(%rax), %cl cmpb $0, %cl je LBB4_2 This makes the generated -O0 code run a bit faster, but also speeds up compile time by putting less pressure on the register allocator and generating less code. This was one of the biggest classes of missing load folding. Implementing this shrinks 176.gcc's c-decl.s (as a random example) by about 4% in (verbose-asm) line count. llvm-svn: 129656
* Put each personality function in a section. This fixes the gnu ld warning:Rafael Espindola2011-04-162-0/+9
| | | | | | error in foo.o; no .eh_frame_hdr table will be created. llvm-svn: 129635
* Rename LineProfiling to GCOVProfiling to more accurately represent what itNick Lewycky2011-04-163-4/+4
| | | | | | | does. Also mostly implement it. Still a work-in-progress, but generates legal output on crafted test cases. llvm-svn: 129630
* Introduce support to encode Objective-C property information in debugging ↵Devang Patel2011-04-163-1/+63
| | | | | | information generated for an interface. llvm-svn: 129624
* Some refactoring suggested by Anton Korobeynikov.Rafael Espindola2011-04-151-0/+1
| | | | llvm-svn: 129600
OpenPOWER on IntegriCloud