Commit Graph
100 Commits
Author SHA1 Message Date
Benjamin Kramer df3f25656d Zap dead code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112955 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-03 12:13:18 +00:00
Benjamin Kramer 1674b0b0e4 Add AsmParser support for the ELF .previous directive. Patch by Roman Divacky.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112849 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-02 18:53:37 +00:00
Benjamin Kramer 230c274724 Allow MCSA_WeakRef in ELF. Patch by Roman Divacky.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112834 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-02 17:18:32 +00:00
Benjamin Kramer 47b7efc082 Remove noisy semicolon.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112673 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-31 23:38:13 +00:00
Benjamin Kramer 19dc7faf25 Allow creation of SHT_NULL sections, from Roman Divacky.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112605 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-31 17:03:33 +00:00
Benjamin Kramer 6cc53be24c MCELF: The value of all common symbols is the offset from the start of the section. Patch by Roman Divacky.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112492 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-30 17:20:17 +00:00
Benjamin Kramer 033927408e Don't print two "0x" prefixes. Use a raw_ostream overload instead of llvm::format.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112479 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-30 14:46:53 +00:00
Benjamin Kramer 51799ddc7c The value is offset from the start of the section for non-common symbols, submitted by Jordan Gordeev.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112473 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-30 12:00:16 +00:00
Benjamin Kramer 679d236117 Index external symbols by symbol table instead of parent section, by Roman Divacky.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112472 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-30 11:59:29 +00:00
Benjamin Kramer 82a3171b72 Mark all common symbols external. This is not exactly correct but it lets apps
link for now and can be adjusted later. Patch by Roman Divacky.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112471 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-30 11:56:55 +00:00
Benjamin Kramer 9df0a0a871 Update ocaml test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112364 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-28 10:29:41 +00:00
Benjamin Kramer 13ba2f9714 Remove unions from the ocaml bindings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112363 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-28 09:47:42 +00:00
Benjamin Kramer 6cfabc7974 Update CMake build. Add newline at end of file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112332 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-28 00:11:12 +00:00
Benjamin Kramer 93ded7371f MCELF: Port EmitInstruction changes from MachO streamer. Patch by Roman Divacky.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112260 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-27 10:40:51 +00:00
Benjamin Kramer 95c602ade3 MCELF: Always overwrite FixedValue.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112259 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-27 10:38:39 +00:00
Benjamin Kramer 4ba1b3074b MCELF: Fix a thinko of mine.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112203 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-26 18:12:04 +00:00
Benjamin Kramer 63d37b9322 MCELF: Compensate for the addend on i386. Patch by Roman Divacky, with some cleanups.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112197 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-26 17:23:02 +00:00
Benjamin Kramer 837bccd052 StringRef::compare_numeric also differed from StringRef::compare for characters > 127.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112189 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-26 15:25:35 +00:00
Benjamin Kramer 0043e35b82 Do unsigned char comparisons in StringRef::compare_lower to be more consistent with compare in corner cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112185 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-26 14:21:08 +00:00
Benjamin Kramer 7b83c26051 MCELF: Use precomputed symbol indices, patch by Roman Divacky.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112079 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-25 20:09:43 +00:00
Benjamin Kramer fc19695c9a Remove dead recursive function. Yay for clang -Wunused-function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112060 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-25 17:27:58 +00:00
Benjamin Kramer 2f6e0e68a4 Relocate against parent if the symbol is not in section or it's a common symbol, from Roman Divacky.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111925 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-24 17:34:39 +00:00
Benjamin Kramer c522f6e70b Fix thinko. Having no tests is great ...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111848 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-23 21:32:00 +00:00
Benjamin Kramer 36c6dc22bc Reduce code duplication.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111846 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-23 21:23:52 +00:00
Benjamin Kramer 0b6cbfe04c ELFObjectWriter: Run ComputeSymbolTable before recording relocations. This way we can use the information it has computed and don't have to recompute the same stuff over and over again.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111844 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-23 21:19:37 +00:00
Benjamin Kramer bcf2db60dd Add the symbol offset to the relocation value when we relocate against section. By Roman Divacky.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111824 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-23 19:05:46 +00:00
Benjamin Kramer 30dc1ee78a Use the proper relocation section + cleanup, from Roman Divacky.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111819 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-23 18:24:20 +00:00
Benjamin Kramer 250eb005d9 Avoid O(n*m) complexity in StringRef::find_first(_not)_of(StringRef).
- Cache used characters in a bitset to reduce memory overhead to just 32 bytes.
- On my core2 this code is faster except when the checked string was very short
  (smaller than the list of delimiters).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111817 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-23 18:16:08 +00:00
Benjamin Kramer 79ed2c597a StringRef tweaks:
- Respect find_first_of(char's From parameter instead of silently dropping it.
- Prefer std::string() to std::string("")


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111814 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-23 17:44:13 +00:00
Benjamin Kramer 9dd3e92e1d Use MDNode::destroy(). Fixes a delete/free mismatch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111739 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-21 15:07:23 +00:00
Benjamin Kramer 192a400003 Update CMake build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111669 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-20 18:56:46 +00:00
Benjamin Kramer 678e4e2479 Update LLVMC tests for r111620.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111621 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-20 13:03:33 +00:00
Benjamin Kramer 44cbde85ba MCELF: Count the section orders properly. Patch by Roman Divacky.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111517 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-19 13:44:49 +00:00
Benjamin Kramer 81cfb8529b Remove dead code. Fixes a GCC warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111271 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-17 19:45:05 +00:00
Benjamin Kramer e5b57347e9 Sketch i386 relocations handling, from Roman Divacky.
Hello world builds & runs now on i386/ELF with -integrated-as.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111264 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-17 18:20:28 +00:00
Benjamin Kramer 299fbe3a5a Use the correct entry size for relocation entries, from Roman Divacky.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111259 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-17 17:56:13 +00:00
Benjamin Kramer 377a572d9b Differentiate between RELA and REL relocations, from Roman Divacky.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111252 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-17 17:30:07 +00:00
Benjamin Kramer eb97677764 One baby step towards i386 ELF, from Roman Divacky.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111247 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-17 17:02:29 +00:00
Benjamin Kramer 73c32f60c4 Revert r111230, we have to find a better place for the host-specific code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111232 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-17 15:50:23 +00:00
Benjamin Kramer 8466efc36f Micro-optimize MCObjectWriter to do a byteswap if necessary and then write the
whole integer to the stream instead of doing byte-sized writes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111230 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-17 13:55:45 +00:00
Benjamin Kramer 755525ad23 There is this new "LLVM" compiler that supports __builtin_bswap but thinks it's gcc 4.2.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111228 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-17 11:45:38 +00:00
Benjamin Kramer 172d7d6a12 Try to silence a overeager GCC warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111214 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-17 00:33:24 +00:00
Benjamin Kramer 368ae7e4ec A round of minor cleanups for ELFObjectWriter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111213 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-17 00:00:46 +00:00
Benjamin Kramer 1f8aa7bf08 Silence warnings and simplify code. Eliminate a 32/64 bit portability issue.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111201 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-16 23:00:12 +00:00
Benjamin Kramer bde87c4d2a Test expects SSE, give him SSE.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111115 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-15 23:32:03 +00:00
Benjamin Kramer 1d81e0eed3 Restore arch on these test, they fail on arm.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111109 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-15 20:42:56 +00:00
Benjamin Kramer 452b93e7dc Use getAllOnesValue, saves a copy and looks better.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110991 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-13 00:29:44 +00:00
Benjamin Kramer 991808005a Remove unused variable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110551 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-08 19:54:10 +00:00
Benjamin Kramer fff0f11989 Roll back my last two commits, valgrind complains.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110518 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-07 13:27:41 +00:00
Benjamin Kramer 0055fac724 A reference to the Timer's name is safe, it outlives the contents of the vector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110517 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-07 13:07:57 +00:00
Benjamin Kramer 933b16e665 Kill rarely used std::sort.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110516 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-07 12:37:00 +00:00
Benjamin Kramer 5aa8df22e7 Shrink PassNameParser's binary size with array_pod_sort.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110512 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-07 11:45:42 +00:00
Benjamin Kramer 56d23947ca Enable COFF writer on mingw32 and cygwin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110200 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-04 15:32:40 +00:00
Benjamin Kramer c575283675 Print an error message when someone tries -integrated-as on an unsupported target.
- The COFF backend doesn't support MingW/Cygwin at the moment, it'll report an
  error, but it's still much better than random assertions from the MachO backend.
- We want to make ELF the default eventually, it's what the majority of targets use.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110197 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-04 13:16:30 +00:00
Benjamin Kramer ad2b04c07f Preallocate vector, avoid unnecessary vector growth.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109971 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-01 11:43:26 +00:00
Benjamin Kramer e099eba206 Tweak suppressions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109858 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-30 12:18:36 +00:00
Benjamin Kramer 432ab2a10c Supress valgrind errors from python.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109818 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-29 23:15:04 +00:00
Benjamin Kramer 38ca1078b4 Remove XFAIL, test doesn't leak anymore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109801 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-29 20:36:36 +00:00
Benjamin Kramer 1abcd06856 Plug the remaining MC leaks by giving MCObjectStreamer/MCAsmStreamer ownership of the TargetAsmBackend and the MCCodeEmitter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109767 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-29 17:48:06 +00:00
Benjamin Kramer 3bce5adb32 Stop leaking std::strings in GetDwarfFile.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109746 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-29 13:53:19 +00:00
Benjamin Kramer 808ecfce6a COFFObjectWriter: Don't leak COFFSymbols and COFFSections.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109745 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-29 11:57:59 +00:00
Benjamin Kramer 82d5baec32 Reduce string trashing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109386 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-25 23:18:32 +00:00
Benjamin Kramer 5907f4c385 Update CMake build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108700 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-19 15:37:03 +00:00
Benjamin Kramer 3df1d5c408 Feed the right output into FileCheck.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108523 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-16 10:58:02 +00:00
Benjamin Kramer 38e59891ee Don't pass StringRef by reference.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108366 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-14 22:38:02 +00:00
Benjamin Kramer 26fe25f651 HTML cleanup and validation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108239 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-13 12:26:09 +00:00
Benjamin Kramer c9fe6374b7 Nope, still breaks the release selfhost bots :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108153 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-12 16:38:48 +00:00
Benjamin Kramer 8fd437c43f Reapply the "or" half of r108136, which seems to be less problematic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108152 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-12 16:15:48 +00:00
Benjamin Kramer e2d07b5208 Revert r108141 again, sigh.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108148 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-12 14:42:04 +00:00
Benjamin Kramer 98a8206e58 Reapply 108136 with an ugly pasto fixed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108141 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-12 13:44:00 +00:00
Benjamin Kramer ad854f0764 Move optimization to avoid redundant matching.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108140 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-12 13:34:22 +00:00
Benjamin Kramer 0cc4ed1ca5 Revert r108136 until I figure out why it broke selfhost.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108139 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-12 12:35:49 +00:00
Benjamin Kramer 4fc719e607 instcombine: fold (x & y) | (~x & z) and (x & y) ^ (~x & z) into ((y ^ z) & x) ^ z which is one instruction shorter. (PR6773)
before:
  %and = and i32 %y, %x
  %neg = xor i32 %x, -1
  %and4 = and i32 %z, %neg
  %xor = xor i32 %and4, %and

after:
  %xor1 = xor i32 %z, %y
  %and2 = and i32 %xor1, %x
  %xor = xor i32 %and2, %z


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108136 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-12 11:54:45 +00:00
Benjamin Kramer cde51108de Merge the duplicated iabs optimization in DAGCombiner and let it detected a few more idioms.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107868 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-08 12:09:56 +00:00
Benjamin Kramer 1db071f0da Teach instcombine to transform
(X >s -1) ? C1 : C2 and (X <s  0) ? C2 : C1
into ((X >>s 31) & (C2 - C1)) + C1, avoiding the conditional.

This optimization could be extended to take non-const C1 and C2 but we better
stay conservative to avoid code size bloat for now.

for
int sel(int n) {
     return n >= 0 ? 60 : 100;
}

we now generate
  sarl  $31, %edi
  andl  $40, %edi
  leal  60(%rdi), %eax

instead of
  testl %edi, %edi
  movl  $60, %ecx
  movl  $100, %eax
  cmovnsl %ecx, %eax


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107866 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-08 11:39:10 +00:00
Benjamin Kramer 3432d70d5b Use a more obvious way to avoid compiling functions which are only used when XDEBUG is enabled.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107125 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-29 10:03:11 +00:00
Benjamin Kramer 2b3b32361f Fix test weirdness.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106959 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-26 22:06:50 +00:00
Benjamin Kramer a2938e7e5f Fix some tests that didn't test anything.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106954 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-26 20:05:06 +00:00
Benjamin Kramer ce9a20b808 VNInfos don't need to be destructed anymore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106943 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-26 11:30:59 +00:00
Benjamin Kramer 831338b320 Rewrite MemoryBuffer::getSTDIN to use read(2) and a SmallVector buffer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106856 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-25 16:07:18 +00:00
Benjamin Kramer 7262c19c41 Bring back the empty vector workaround I removed in r106839. Looks like MSVC needs it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106841 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-25 12:51:01 +00:00
Benjamin Kramer d4d1f85aa7 Tweak MemoryBuffer to allocate the class itself, the name and possibly the
buffer in the same chunk of memory.

2 less mallocs for every uninitialized MemoryBuffer and 1 less malloc for every
MemoryBuffer pointing to a memory range translate into 20% less mallocs on
clang -cc1 -Eonly Cocoa_h.m.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106839 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-25 11:50:40 +00:00
Benjamin Kramer 6118efa59e Use calloc instead of new/memset, it is more efficient when the set is very large.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106390 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-19 17:00:31 +00:00
Benjamin Kramer 0f471e018f TODO--
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106102 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-16 15:47:00 +00:00
Benjamin Kramer ea9ca0236d simplify-libcalls: fold strncmp(x, y, 1) -> memcmp(x, y, 1)
The memcmp will be optimized further and even the pathological case
'strstr(x, "x") == x' generates optimal code now.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106097 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-16 10:30:29 +00:00
Benjamin Kramer 386e918438 simplify-libcalls: fold strstr(a, b) == a -> strncmp(a, b, strlen(b)) == 0
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106047 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-15 21:34:25 +00:00
Benjamin Kramer c125fedcc7 Test case for r105914.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105915 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-13 16:16:54 +00:00
Benjamin Kramer c05cb8d561 SimplifyCFG: don't turn volatile stores to null/undef into unreachable. Fixes PR7369.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105914 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-13 14:35:54 +00:00
Benjamin Kramer 31135c0692 Let SmallVector take advantage of LiveRange's podness.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105913 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-13 12:52:38 +00:00
Benjamin Kramer d164d3d9e7 Use realloc instead of malloc+memcpy when growing a POD SmallVector. A smart
realloc implementation can try to expand the allocated memory block in-place,
avoiding the copy.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105605 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-08 11:44:30 +00:00
Benjamin Kramer aede8118ad Forgot to update the most important part of the gtest modifications readme.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105396 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-03 17:11:49 +00:00
Benjamin Kramer 2e3f44eab2 Disable pthread support in googletest if llvm was configured without threads.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105390 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-03 15:17:04 +00:00
Benjamin Kramer 8ef297e945 Turns out gtest still prefers the system <tr1/tuple> over it's own
implementation. Force the internal one to unbreak clang selfhost on linux.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105386 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-03 07:51:58 +00:00
Benjamin Kramer 4839d872fc Update Readme and Makefiles for the new gtest.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105355 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-02 22:02:57 +00:00
Benjamin Kramer 57240ff6e2 Merge gtest-1.5.0.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105354 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-02 22:02:30 +00:00
Benjamin Kramer 190f8ee25a Merge gtest-1.4.0.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105353 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-02 22:02:11 +00:00
Benjamin Kramer e4b9c93fc1 Merge gtest-1.3.0.
OSX users: make sure that CrashReporter is disabled when running unit tests.
Death tests are enabled now so you'll get a ton of message boxes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105352 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-02 22:01:25 +00:00
Benjamin Kramer c29df3cac7 Avoid swap when a copy suffices.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105220 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-31 12:50:41 +00:00
Benjamin Kramer 0f9c658558 Remove unused function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105100 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-29 14:03:51 +00:00
Benjamin Kramer 1464c1d60a Kill unneeded SExt.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104692 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-26 09:45:04 +00:00