Android IceCreamSandwich AOSP Changes

Changes from 4.0.2_r1 (ICL53F) to 4.0.3_r1 (IML74K):

Warning Releases with no significant changes other than version bump in platform/build component are likely to only feature proprietary binary blob (e.g. firmwares) changes.

Removed Components (0):

None

Updated Components (100):

  • device/common with 2 change(s)
    • 28b7cc7 : Handle wingray and stingray separately
    • 371b1b6 : Backport from master - add crespo and stingray

  • device/sample with 5 change(s)
    • 40bdf67 : Apn lists are changed
    • 3bf78c2 : [sample] Change apn list
    • 2fa9188 : Change apn list
    • c0dd36f : Rename PRODUCT_SDK_ADDON_DOC_MODULE to PRODUCT_SDK_ADDON_DOC_MODULES
    • c6bc806 : Apply new mmsc settings for vzw mms testing

  • device/samsung/maguro with 5 change(s)
    • cc6ce87 : Support ITL and ICL bootloaders/radios in IML
    • 270d616 : require bootloader KL01
    • 221521a : Require KJ8 radio for Maguro
    • d923bed : Amended imgtec license.
    • e9a68e4 : require new (KH01) bootloader

  • device/samsung/toro with 20 change(s)
    • 3f9a1ea : Allow the EK05 CDMA radio
    • 106c91b : Update board-info for radio-cdma.I515.EK06
    • f9b1df9 : Support ITL and ICL bootloaders/radios in IML
    • e870abd : wlan: Update calibration file to Ver 1.1
    • 2c3028f : require bootloader KL01
    • ea555cf : require cdma radio EK05
    • 0e970d5 : require EK04
    • 01426af : DUT allows user to enter only 40 characters into subject area
    • 7dba9a8 : 32GB userdata.img.
    • ac44376 : Require LTE EJ13 Radio
    • 15b75a7 : Amended imgtec license.
    • 2876445 : Update the board-info to require EJ07 LTE radio fo IFL10D
    • 09212f6 : require new EI07 cdma radio
    • 5113e21 : require new (EI02) cdma radio
    • 9e6d3da : require new cdma (EI01) and new LTE (EH02) radios
    • ace6721 : Revert "Revert "require new cdma (EH05) radio""
    • ac0549d : Revert "require new cdma (EH05) radio"
    • fb14d84 : require new cdma (EH05) radio
    • 4075614 : require new EH02 LTE radio
    • 5d5eac2 : New APN table from Samsung that works with their RIL.

  • device/samsung/tuna with 70 change(s)
    • 0f45213 : Update kernel prebuilt
    • baa510e : tuna: update kernel prebuilt
    • 3f14ace : new kernel prebuilt
    • 45dfd46 : new kernel prebuilt
    • 253073f : new kernel prebuilt
    • bba3d2f : Add portrait dock image
    • e4ac194 : new kernel prebuilt
    • 9dfe808 : Run tf_daemon as class main instead of class core
    • 7a170e1 : audio HAL: release audio pre processing buffers.
    • 8d2a2d2 : tuna: prebuilt kernel
    • ad025cc : tuna: prebuilt kernel
    • 65ed1e7 : tuna: update kernel prebuilt
    • 7de153c : tuna: don't use setup_fs on efs partition
    • fbdda8a : tuna: set root hubs autosuspend delay to 0
    • ceabccf : tuna: Fix ArrayIndexOutOfBoundsException on autobrightness updates
    • 669d17c : new kernel prebuilt
    • c828dcc : new kernel prebuilt
    • 64e193f : new kernel prebuilt
    • a6a276e : tuna: autobrightness: overhaul brightness table
    • 9a0cc69 : Enable user builds to capture bugreports via keycombo
    • fe1a1c1 : tuna: prebuilt kernel
    • d23a6a0 : new kernel prebuilt
    • 282b562 : new kernel prebuilt
    • d814892 : require bootloader KL01
    • f61e529 : tuna: kernel prebuilt
    • 6dc137c : Show dock settings when docked on tuna/toro/maguro.
    • 077ccad : tuna: Prebuilt kernel
    • d0e7ce3 : tuna: update prebuilt kernel
    • ef8e30c : tuna: update prebuilt kernel
    • c52567b : tuna: update prebuilt kernel
    • d9bb80f : tuna: update prebuilt kernel
    • c45fce5 : New Prime prebuilt
    • 46f0619 : Replace vendor specific NfcGoogle.apk with generic Nfc.apk
    • a00c770 : New kernel prebuilt
    • 6644779 : new kernel prebuilt
    • 5883074 : tuna: update kernel prebuilt
    • 553d74b : new kernel prebuilt
    • eb228f5 : tuna: update prebuilt kernel
    • 2cdc47b : Set NFC load modulation parameters to recommended values.
    • 9f33e07 : Fix for 5603113 profiles and levels in media_profile.xml are not matched with the HW codec capability.
    • e12c193 : new kernel prebuilt
    • 07e5559 : tuna: Update kernel prebuilt
    • d537f44 : new kernel prebuilt
    • 28a1fe0 : Follow-up fixes to NFC access control changes.
    • a3dedf1 : Fix for issue 5309336 -add videoeditor maximum prefetch YUV frames in media_profiles.xml to limit the total memory usage.
    • 16bd12a : Add nfcee_access.xml for tuna.
    • f952ab4 : new kernel prebuilt
    • 3a2cd55 : Add key maps for tuna keypad. Bug: 5580373
    • 4c37bcd : Use accelerometer for desk docks.
    • a027816 : tuna: update kernel prebuilt
    • 42b1140 : sensors: Retry poll on EINTR
    • 2a2d960 : Fine-tune load modulation based on EMV test bench.
    • c0ce99c : Update EEPROM for FW 109.12, and enable low power polling retry mechanism.
    • eef019b : tuna: update prebuilt kernel
    • 196d029 : NFC: HAL implementation for tuna.
    • 35caa5b : sensors: Return a calculated lux value instead using the current 8 entry table
    • d297e81 : Import revised translations.
    • 58fc465 : audio: force speaker route for call when docked
    • 68413dc : fix previous typo/mistake, submit correct kernel
    • be4b75b : New Prime prebuilt
    • 2445e38 : Revert "Update melfas touch firmware to vers 0x58/0x38."
    • 7deadfb : new kernel prebuilt
    • 6ca6ab5 : tuna: update kernel prebuilt
    • d0325fa : tuna: Allow the RIL to control the LTE modem autosuspend mode
    • 7d4accc : new kernel prebuilt
    • c24067e : Update melfas touch firmware to vers 0x58/0x38.
    • bff25f1 : tuna: add tool that can reflash bootloader from userspace
    • 1798fb2 : new kernel prebuilt
    • 5d58dac : Updated kernel prebuilt
    • d92ea70 : tuna: enable off mode based on property

  • platform/bionic with 5 change(s)
    • 94963af : update video/dsscomp.h
    • bba5c31 : update video/dsscomp.h
    • 0d9f87a : Add auto-exposure/auto-white balance lock support to soc2030 image sensor.
    • 487b613 : Use ENTRY and EXIT macros for strcmp, memcpy, atexit.
    • 6ce1080 : update kernel video/dsscomp.h

  • platform/bootable/recovery with 2 change(s)
    • d0181b8 : allow recovery packages to wipe cache
    • 1fe452c : Fix starting adb in recovery mode

  • platform/build with 363 change(s)

  • platform/cts with 88 change(s)
    • f73562c : Fix Flakiness in MediaScannerNotificationTest
    • add80f7 : Fix Tradefed Help
    • 5a3f3e8 : Fix Bad Foreach Statement
    • 3c22a32 : Fix ConfigurationScreenLayoutTest
    • 88d32a8 : Support Native Tests in CTS
    • 42f3896 : Make zergrush test more reliable.
    • abed886 : add listing of system libraries to testResult in the following format SystemLibrariesInfo Library name="a.b.c" / ... /SystemLibrariesInfo
    • 49f3196 : Add 4.0.3 to BuildVersionTest
    • 2436c2a : Updated Holo Assets
    • 9b89b4b : CTS release for GB R11
    • 5d53a8a : two more dirs
    • 1236a8a : Changed test to wait for paint complete before focus request.
    • 68ae373 : one more dir
    • a0a65d3 : TextKeyListenerTest#testPressKey fails
    • 6320440 : Update CTS Tradefed README
    • f8e0d00 : add more directories.
    • a676e68 : Add AAC test to SoundPoolTest - Change the original code to get file/resource names from member functions. (SoundPool is changed to abstract class) - SoundPoolAacTest implements those functions to provide AAC clips - SoundPoolOggTest for Ogg - new aac clips in mp4 container added (converted from the original ogg)
    • 0752140 : Some More Holo Test Fixes
    • 937c910 : Add AAC test to SoundPoolTest - Change the original code to get file/resource names from member functions. (SoundPool is changed to abstract class) - SoundPoolAacTest implements those functions to provide AAC clips - SoundPoolOggTest for Ogg - new aac clips in mp4 container added (converted from the original ogg)
    • cd91c24 : Add AAC test to SoundPoolTest - Change the original code to get file/resource names from member functions. (SoundPool is changed to abstract class) - SoundPoolAacTest implements those functions to provide AAC clips - SoundPoolOggTest for Ogg - new aac clips in mp4 container added (converted from the original ogg)
    • 87fedb0 : Fix camera testAutoWhiteBalanceLock failure.
    • e798d29 : Update the accessibility tests due to changes that fixed memory leaks.
    • 0748ed5 : Revert "Delete DX Tests"
    • 61d8098 : Fix ViewTreeObserverTest in Landscape Orientation
    • 608f5b3 : Change SUID test to filter out the case when a file with SUID is not executable by others. Such file can be executed only by root or the one with group permission.
    • 07d4a18 : Fix ConfigurationTest#testScreenConfiguration
    • cac10cf : Some More Holo Theme Test Stuff
    • eae5167 : temp fix for bug 5572325, increase polling interval to 400ms
    • eefad86 : Updated CalendarView Assets for Holo Tests
    • b8a3d27 : Set TimeZone for CalendarView Bitmaps
    • 652a923 : Allow no available blocks for /system
    • 441ce45 : Better error handling when CTS build is not valid.
    • 5993f77 : Use getTargetContext in SystemFeaturesTest
    • e8c0166 : New Holo Theme Tests
    • 1681ad5 : Revert change to WebViewTest#testSetInitialScale
    • 9ba909f : Delete DX Tests
    • 98b4919 : Delete Old Theme Tests
    • 6fa6aa7 : Fix bug 5051682 - android.widget.cts.ViewFlipperTest#testViewFlipper
    • 36d4da2 : Display two lines of failure stack in xml report, instead of one.
    • 9353e02 : CTS: rewrite refresh rate measurement
    • 61506d4 : Fix 'list results' spacing issues.
    • 5d5d8e4 : Destroy WebView in Activity onDestroy
    • 5a526c6 : Fix appsecurity tests.
    • b934510 : Add a cts test for MediaRecorder.setLocation() and MediaMetadataRetriever.extractMetadata(METADATA_KEY_LOCATION)
    • 49a978a : Fix issues #5587467 and #5587141.
    • d32c1be : CTS: add test for Display.getRefreshRate()
    • 3dd6ed0 : TextKeyListenerTest#testPressKey fails
    • fa1effd : Revert "Fix Layout for WebViewTest"
    • 122fe7b : Fix WebViewTest#testSetInitialScale
    • a6ada61 : Modify timestamp verification for SurfaceTexture frames from Camera.
    • 772733b : Fix Missing AppSecurity Tests
    • 35b15da : Do not use hardcoded frame rate 15 fps in cts test
    • ca2836a : Update BuildVersionTest for ICS MR1
    • 78fe700 : Fix AudioManager Ringtone test.
    • ab2619e : Fix AudioManager volume tests.
    • 3c34470 : Move Theme Stuff to CtsThemeTestCases
    • c45ff87 : Port appsecurity tests to use TF API.
    • e7cc8fd : Delete Old Test Runner
    • 153b4ad : Fix Yet More Theme Test Stuff
    • 3488760 : Update Theme Test HDPI Assets
    • df1b571 : More Theme Test Fixes
    • c3cbef1 : Don't use hidden API.
    • 344dfad : Change preview callback to one-shot version.
    • e6d48d0 : Use published API rather than hard-coded values
    • a0e33cd : Remove Test Expectations
    • 81c400c : Test null eventTimezone
    • 78014f9 : change COLOR_INDEX to COLOR_KEY
    • 903c322 : fix IPv6 loopback pattern
    • 882f960 : Retain META-INF in core-tests.
    • 13d40b4 : Fix a mismatch problem because of hidden public API in CamcorderProfile.java
    • 140929a : Adding CTS tests for the new accessibility APIs in ICS.
    • 60ef84a : Fix PackageSignatureTest#testPackageSignatures
    • 521a402 : Complete 'continue-session' support
    • 93d85d2 : Make vm-tests-tf use ITestDevice.pushDir
    • 11d0add : Fix FileObserverTest#testFileObserver
    • ca47d89 : Add CTS tests for Colors table
    • 65e4f14 : modified: MediaPlayerStreamingTest.java
    • 533ea8a : Add the unit for the time.
    • 48780b9 : Test validation of commands and arguments.
    • 0535281 : Fix use of WebView.loadData() to avoid passing invalid encoding
    • 9d4a018 : Test for the color packing/unpacking
    • adbb195 : Makes gl context destruction not wait on garbage collector.
    • fc9d7b8 : Fix CTS test broken due to default value of closeOnTouchOutside. Bug: 5195897
    • a7f700d : Fix a broken CTS test for sendPointerSync. Bug: 4355412
    • 33a0d94 : Remove references to ArrayListCursor which is deprecated.
    • 39ae26a : Do not allow the orientation change during MediaPlayer CTS test. Fix for 5220818.
    • a6e8d67 : Add CTS test for MediaPlayer.setSurface() For bug 5088394.
    • 0438fa3 : Updating tests for system font Roboto

  • platform/dalvik with 16 change(s)
    • a18e6d1 : Initialize the vC field of inlined getters/setters.
    • ee155d4 : Initialize the JNI indirect ref table to make Valgrind happy.
    • ccf4c9d : Don't decr profiling count without incr
    • af6cf54 : Reduce Dalvik card table overhead
    • 9d420d4 : Don't pay for filename/line number lookup unless you need to.
    • de68817 : Knock ::self() out of the ParseXml profile.
    • ab97cd1 : Start profiling after state prep
    • 63cd4b0 : Don't malloc between fork and exec
    • a78b125 : Fix cleanup
    • 17d00d5 : Fix single-stepping resume mode in the interpreter.
    • 8faec7e : Fix single-stepping resume mode in the interpreter.
    • fc785c7 : Provide debugging info should extended opcode lookup fail.
    • 4b5087a : Revert "GC experiment."
    • b3fb1d0 : GC experiment.
    • 167e062 : Attempt to fix dalvik heap corruption.
    • eba95c1 : Fix native methods that weren't registered via RegisterNatives.

  • platform/development with 52 change(s)
    • 4a6b52b : Move support lib to rev 6.
    • 4420881 : revisions to NewsReader sample app for AndroidU. Clean up XML markup for clean rendering in HTML docs; Change string resources for two-pane mode to bools; Rename resource files w/ layout info from main.xml to layouts.xml. Add support lib Add HTML page
    • e0c8f94 : SDK only: add markup for use in documentation.
    • b0a30e4 : EmuGL: remove broken EGL buffer refcounting
    • fed7d83 : Move samples to API 15.
    • 7400b43 : Increase skin ram and vmheap.
    • 4fed461 : Revert "Revert "Update the media_profiles.xml file to include..."
    • 4ea24bf : cherrypick from master cl Change-Id: I45f91fd9cfe0cb89789017deec63565e4757063e Adding the NewsReader sample.
    • ad13b6b : Set proper version of API 15 in SDK files.
    • 7906431 : EmuGL: capture VBO contents in GL2Encoder
    • bd23502 : SDK: fix script creating platform source archive.
    • bdf03ad : Updating the Monkey commands due to framework changes.
    • f56101e : Issue #5689186: Add Guava as a dependency for NFCDemo sample
    • a752338 : Adding a code sample for implementing accessibility in a custom view.
    • 9ad3f40 : Android VPN sample for ICS SDK
    • 2400b2c : Revert "Update the media_profiles.xml file to include..." do not merge.
    • 2310657 : Move support lib to rev 5.
    • a8fe85e : Update the media_profiles.xml file to include maximum memory usage support for video editor. do not merge.
    • fd1bdd6 : Update supported frame sizes for fake camera. do not merge.
    • cf2051a : Inaccvrate Morse data in sample code.
    • 4d9806f : Cherry-picked from 6f00e7fc in master. Do not merge.
    • cd2db13 : Add the support libraries to the platform documentation (demos).
    • f878145 : Update the media_profiles.xml file to include maximum memory usage support for video editor
    • 9c14396 : should fix sdk build
    • a09e21a : Fix the support-v4 demos to work on a platform with APIs V4 (samples part)
    • 14c2622 : SDK sample code for Bluetooth HDP API.
    • 2fd75c6 : Move switch preference into its own demo.
    • 1baa142 : do not merge: cherry-picked Change-Id: I094dbc4ffa42771a13dfb796761546093649481c from master branch
    • 9bc092f : Change the test to user the listener mechanism
    • d960df4 : cherrypick 76bd108d from master. do not merge.
    • 92a00bb : Import revised translations.
    • e824e69 : Adding a code sample for how to write a custom action provider.
    • 676e13f : Move the renderscript include files into platform-tools
    • 10fc4be : a3dconvert: add -ldl for host builds
    • ccdb9cb : Update native-audio example app
    • bd690d7 : Add README.txt for missing example
    • 2fc6ee6 : SDK: Fix missing min-tools-rev in platform source props
    • 0e205e6 : emulator: opengl: minor fix and reformatting
    • fb2ddf9 : emulator: opengl: add design document for emulation implementation.
    • 16436c5 : Import revised translations.
    • caa1aea : Implement CAMERA_MSG_PREVIEW_FRAME callback
    • aa29f34 : Fix use of WebView.loadData() to avoid passing invalid encoding
    • 366396d : Added exposure compensation control for the fake camera.
    • 8ece910 : ndk: Update OpenSLES platform files for API level 14
    • 2c4b4c1 : ndk: Add OpenMAX headers and symbols for API level 14
    • 7476775 : Add DownloadProvider tests.
    • 7761bee : ndk: time.h Add missing clock_settime()/clock_nanosleep() declarations
    • 085e2b1 : ndk: remove obsolete libthread_db.a binaries
    • 0d7f537 : ndk: Refresh EGL/GLES Khronos headers
    • c63ce7a : ndk: remove obsolete android/api-level.h headers
    • 4fee099 : ndk: Fix GB x86 definitions for libm.so
    • 7a11757 : Replace match_parent with fill_parent; Declare importGLInit() and importGLDeinit() regardless DISABLE_IMPORTGL (otherwise compiling in c++ may fail)

  • platform/docs/source.android.com with 3 change(s)
    • 42b5a0b : Remove link to kernel.org gitweb
    • be48f61 : Document the changes related ot the re-launch.
    • e64e429 : Mention build HLK75D

  • platform/external/bluetooth/bluez with 4 change(s)
    • d05887c : Fix channel connected signal emission.
    • 355afe9 : a2dp HAL: add write thread to avoid audio skips
    • 4a6a45b : Send hci command to disable scan mode in power down function
    • 155b05b : Revert "Send hci command to disable scan mode in power down function"

  • platform/external/chromium with 15 change(s)
    • f5b478b : Enable persistent http connections.
    • 088da08 : Defer closing idle sockets.
    • efe273f : Part of fix for bug 5523834, backporting cache fixes
    • 1ab02c3 : Part of fix for bug 5523834, backporting cache fixes
    • 93bed14 : Part of fix for bug 5523834, backporting cache fixes
    • a972e26 : Part of fix for bug 5523834, backporting cache fixes
    • 2c4085b : Backport SPDY ping changes from chrome 16.
    • b54fbb0 : Fix for build break
    • 9fb7297 : Part of fix for bug 5455901 Fix makefile, turn off exporting everything
    • 4154342 : Part of fix for bug 5455901 Export symbols from base
    • a1fe9c0 : Part of fix for bug 5455901 Add exports needed for autofill and cookies
    • 2557749 : Part of fix for bug 5455901 Export symbols from net/
    • a3fef89 : Part of fix for bug 5455901 Export symbols in android/
    • cd7ce18 : Part of fix for bug 5455901 adding net_export.h
    • eaa86de : Remove temporary debug logging

  • platform/external/clang with 2116 change(s)
    • bd4fa56 : Forward-declare BalancedDelimiterTracker and then befriend it.
    • 651532b : Declare BalancedDelimiterTracker as Parser's friend class.
    • 4ab4645 : Declare friend class to tolerate GCC 4.0.1 used by Xcode 3.0.
    • e21f6df : Hard-code 2 constants to tolerate GCC 4.0.1 used by Xcode 3.0.
    • 8d91857 : Revert "Revert "Don't crash when trying to emit too many fixits. Also, keep some constants in""
    • e499e7f : Revert "Don't crash when trying to emit too many fixits. Also, keep some constants in"
    • 18c6402 : Update README.
    • fe6bd6d : Apply changes to migrate to upstream Oct 20th 2011 (r142531)
    • 64f8531 : Properly abstract 64-bit longs for Renderscript.
    • 18c9bd3 : Fix the signatures of vfork, __sigsetjmp and sigsetjmp.
    • 68db6f0 : Break out ssize_t test from Sema/format-strings-fixit.c
    • 43f5103 : Improve the warning for cv-qualifiers on free functions, from Ahmed Charles!
    • 13102ff : Add support for constant arrays, from Anders Waldenborg!.
    • 38d2d55 : Add TypeKind.CONSTANTARRAY, from Anders Waldenborg!
    • 9d342ab : Fix error message for unknown type kind, from Anders Waldenborg!
    • 2abfec3 : This new field was introduced in clang-c in r141277
    • 1368e58 : Fix pr9789, assert-on-invalid while instantiating an (invalid) class template with a non-final parameter pack. Also improve the warning for non-final parameter packs in this scenario so it only fires once, rather than once for every template parameter after the non-final parameter pack.
    • ab795d6 : Tweak this test to test more directly what we want, and hopefully work around the brokenness of code completion under -fdelayed-template-parsing
    • 7c81c2a : Don't forget to complete the objc interface before asking for information, otherwise lldb will suffer.
    • 53e5351 : Add a -Wc++98-compat warning for friend functions of class templates which would be implicitly instantiated (resulting in a redefinition) in C++98.
    • b9c8c42 : Add block information for ObjC @catch blocks.
    • c328779 : Add a new subclass of RunCleanupScopes that also handles creating new lexical blocks for debug info.
    • 013e5ce : Move static array parameter checks to SemaExpr, per Doug's request
    • 77faa36 : -Wc++98-compat: warn if a SFINAE substitution in C++11 suppresses an access control diagnostic.
    • b224343 : objc: allow class name qualified with protocols in iboutletcollection attribute. But ignore protocol list. // rdar://10296078
    • c9003c8 : [analyzer] Move predecessor into the NodeBuilder context.
    • 4e82d3c : [analyzer] Make NodeBuilder and Pred node loosely coupled
    • 3152b3c : [analyzer] Remove StmtNodeBuilder from CheckerContext
    • 319a918 : [analyzer] Subclassing StmtBuilder from the NodeBuilder
    • 67d9fba : [analyzer] Remove dead code. ExprEngineBuilders is not used.
    • 9a1e3ab : [analyzer] Remove redundant method + whitespace.
    • cd656ca : [analyzer] Modularize builder use in processBranch.
    • ad62dee : [analyzer] Pull Pred out of NodeBuilderContext. Each builder will have a different one, so it doesn't make sense to keep it in the context.
    • 8c90aad : [analyzer] Rely only on NodeBuilder inside CheckerContext.
    • d0b0806 : [analyzer] Remove redundant assignment operator.
    • a19f4af : [analyzer] NodeBuilder Refactoring: Subclass BranchNodeBuilder from NodeBuilder.
    • f05aac8 : [analyzer] Node Builder refactoring: Introduce a simple Node Builder responsible for generating the node frontier.
    • 2dde35b : More metaprogramming with builtin types.
    • c705d25 : [libclang] Make sure we do a correct invalid check in clang_getExpansionLocation.
    • fa43c97 : Minor tweak to test
    • 6b13022 : -Wc++98-compat and -Wc++98-compat-pedantic warnings for Sema, part 2.
    • 097f6b0 : Remove unused data member
    • 8ca7208 : Provide result types for code completions that describe built-in expressions (this, sizeof, etc.).
    • eb2ac8b : Add a __has_feature check for arc_cf_code_audited.
    • e0a22d0 : Macro metaprogramming for builtin types.
    • ebaf0e6 : -Wc++98-compat and -Wc++98-compat-pedantic warnings for Sema, part 1.
    • 024f4be : Frontend: Support -iframework.
    • dd67723 : Simplify RecordDeclCXX::setBases slightly. No functional change.
    • f4072ae : objc: more changes in use of IBOutletCollection attribute. 'Class' is disallowed as argument. If the argument is missing, NSObject is assumed. // rdar://10296078
    • 4467901 : [arcmt] Rewrite attributes in extensions as well. rdar://9992142
    • b98ffde : Set the objc "property attributes as written" for extension properties as well.
    • f106f0e : In C++11, a class's members are allowed to be nominated as friends.
    • 0282c5a : Implements alignment for long long and double types in va_arg on ARM AAPCS. Patch by Jim (Ningjie) Chen.
    • c19981c : [driver] Make the driver to link the simulator arclite lib when passing -mios-simulator-version-min. rdar://10218700
    • 7a81e41 : objc: diagnose invalid argument to an iboutletcollection attribute intead of crashing. // rdar://10296078
    • 46d1ea4 : [libclang] Since an objc extension semantically continues the interface of the class don't use unique USRs for them, otherwise we fail to associate @implementation methods with the methods in extensions.
    • 341350e : Make it possible to compute the type of 'this' without capturing it. Refactoring to be used in a moment.
    • a50216c : Add code completions for C++0x expressions
    • aca19be : [libclang] Index implicit property references.
    • c0f5b75 : [libclang] When printing the diagnostic print it with a new line.
    • 9fbbf14 : [libclang] Index method references.
    • 474202f : Use llvm::Triple's methods to parse FreeBSD version numbers.
    • 36e7608 : Another attempt at fixing format-strings-fixit.c.
    • 4886e32 : Disable the ssize_t test in format-strings-fixit.c.
    • a7da215 : Suggest %zu for size_t args to printf.
    • 5f31f08 : Switch to the C++11 warning flags in tests. Patch by Ahmed Charles!
    • 5090e9f : Update documentation to use "C++11" instead of "C++0x"
    • ee1c68a : Don't format the code completion for parameters of block literal arguments as block literal arguments; the block literal argument code completion should only go one level deep. Fixes rdar://problem/10291294.
    • 2dc7ece : Add -Wc++11-compat warning for an inline specifier on an explicit instantiation.
    • 4e8ea0b : When transforming the arguments for a C++ "new" expression, make sure to drop the implicitly-generated value initialization expression used for initializing scalars. Fixes rdar://problem/10283928.
    • 3e2e91e : Refactor the checking for explicit template instantiations being performed in the right namespace in C++11 mode. Teach the code to prefer the 'must be in precisely this namespace' diagnostic whenever that's true, and fix a defect which resulted in the -Wc++11-compat warning in C++98 mode sometimes being omitted.
    • d80d90d : Argyrios says this change is required for safety under PTH. Me, I believe him.
    • 66f2846 : Revert accidental commit.
    • 97c0aef : Rewrite parts of MS ABI C++ layout. Based on work by r4start; I ended up doing this while I was trying to review his patch.
    • 3eff321 : Fix several bugs with #pragma clang arc_cf_code_audited and macros.
    • dceb11f : Revert r142311, -mios-simulator-version-min does not work correctly.
    • 85def35 : In hasPlaceholderType(Kind) and isSpecificPlaceholderType(Kind), assert that the parameter is actually a placeholder type kind.
    • b56e6ad : Remove the hack where we sniff the __IPHONE_OS_VERSION_MIN_REQUIRED define.
    • ea01143 : Perform lvalue-to-rvalue conversions on __builtin_offsetof array argument index before typechecking, as suggested by John.
    • 01b2b9b : [arcmt] In ARC default for properties is 'strong' so just remove a 'retain' if possible, instead of changing it to 'strong'. rdar://9984862.
    • 841804b : Add -Wc++98-compat warnings for uses of the new keywords 'alignof', 'char16_t', 'char32_t', 'constexpr', 'decltype', 'noexcept', 'nullptr' and 'static_assert'.
    • ea523d7 : Wire up support for the controlling the extended dwarf .file directive. With r142300 but not this patch, clang -S may emit .s files that assemblers other than llvm-mc can't parse.
    • 3de2fc4 : Silence a -Wc++0x-narrowing warning
    • 19706f8 : Implement -static-libstdc++ for linux.
    • 36180f3 : Try fixing MSVC compiler errors.
    • 7f20c7c : Add missing newline.
    • 66d5ce1 : Move about 20 random diagnostics under -W flags. Patch by Ahmed Charles!
    • 454b57a : Initial implementation of __atomic_is_lock_free. The input is the size of an atomic type rather than an atomic type itself just to save some implementation pain; I can change that if it seems worthwhile.
    • abf3ac7 : Implement -static-libgcc on linux and refactor the code responsible for adding libgcc to the link line into a helper function.
    • 8121639 : Substitute for arguments in method calls -- functionality
    • 9f80a97 : Substitute for arguments in method calls -- refactoring
    • fe0a0fb : Refactor __attribute__ parsing, and add a diagnostic if the r_paren at the end of an attrib is missing. gcc does not allow the closing parenthesis to be omitted.
    • abd2a3e : Code completion chunks are pod-like.
    • 6ec9643 : The comparison of two vectors should return a signed result. hasIntegerRepresentation() used to always return false for vectors, but since it was changed, it also changed the return type of a compare of two unsigned vectors to be unsigned. This patch removes the check for hasIntegerRepresentation since its not needed and returns the appropriate signed type. I added a new test case and updated exisiting test cases that assumed an unsigned result.
    • d125050 : obj-c++: Fix a IRGen crash when getter is a reference type. Fix is in Sema. // rdar://10153365
    • e75ce16 : Add missing case to switch.
    • 88a4cfd : Strip qualifiers off the type of an implicit property defined by only a setter.
    • 4e7064f : [libclang] Introduce a new high level API for indexing clients that assumes more of the work involved in indexing a translation unit and simplifies client implementations.
    • b4a686d : Introduce ASTConsumer::HandleTopLevelDeclInObjCContainer which accepts top-level declarations that occurred inside an ObjC container.
    • 6d4740e : Have ObjCMethodDecl::getCanonicalDecl take into account redeclared methods.
    • b05d7b2 : Keep track when a ObjC interface/protocol was initially created as a forward reference.
    • 541ba16 : Controlling macros are identifiers, not declarations.
    • 5acb0c9 : Teach the ARC compiler to not require __bridge casts when passing/receiving CF objects at +0 to/from Objective-C methods or audited C functions.
    • 0ddaeb9 : Add a new placeholder type to represent "unbridged" casts in ARC.
    • 4919dfd : Add a helper function for determining whether an expression has placeholder type.
    • a2b4e5d : When we end up having to parse the initializer of a C++ member early in -fms-extensions mode, make sure we actually use that initializer after having handled the declaration. Fixes PR11150.
    • c046f30 : Revert r142142: "Make a C-style cast a const-cast, to suppress a GCC warning." Richard already fixed the underlying issue, so the cast was superfluous.
    • aa93a87 : For modules, all macros that aren't include guards are implicitly public. Add a __private_macro__ directive to hide a macro, similar to the __module_private__ declaration specifier.
    • 05edf66 : When building a module, use the macro definitions on the command line as part of the hash rather than ignoring them. This means we'll end up building more module variants (overall), but it allows configuration macros such as NDEBUG to work so long as they're specified via command line. More to come in this space.
    • c35cba4 : Fixed merge-mistake where ActOnAccessSpecifier was called twice for every access specifier. The testcase has been changed to catch this too.
    • d82e5d3 : Perform an lvalue-to-rvalue conversion on an array index in a __builtin_offsetof expression.
    • 909c555 : Slightly simplify a constant expression check. No functional change.
    • 4c3fd51 : Add a testcase for r142121 based on an idea from Richard Smith. Thanks!
    • 1e12c59 : Split apart the state accumulated during constant expression evaluation and the end result. Use this split to propagate state information and diagnostics through more of constant expression evaluation.
    • 20cdbeb : Add sema checks for calls to functions taking static array parameters
    • 5405b81 : Implement overload resolution from init lists for scalar parameter types.
    • c223518 : Diagnose when omitting braces in direct list-initialization in C++0x.
    • 3ff5c86 : In the verify-only pass, check that items that don't have an initializer in an init list can be value-initialized, at least when designated initializers are not involved. No test case yet, since early failures cannot be distinguished from late failures until overload resolution works.
    • 28bdb14 : Check for unavailable declarations in Sema::CanUseDecl.
    • d12c9f5 : Prove that non-overloaded function calls using init list arguments work.
    • 091fffe : Drop the Diagnose parameter from Sema::PerformImplicitConversion again and instead use TryImplicitConversion in CheckSingleAssignmentConstraints when that function is in no-diagnostics mode.
    • 68ff8d6 : Make a C-style cast a const-cast, to suppress a GCC warning. I should fix the underlying issue eventually, but this interface will probably change anyway.
    • e409238 : Remove the leftover partial comment.
    • 16a6355 : Fix a silly bug introduced in r142133.
    • 7a09d01 : Clean up some cruft in the library path searching logic by making 'libdir' mean the actual library directory, not the GCC subdirectory of the library directory. That was just a confusing pattern. Instead, supply proper GCC subdirectories when scanning for various triple-based subdirectories with a GCC installation in them. This also makes it much more obvious how multiarch installations, which have a triple-based prefix as well as suffix work.
    • 96fda0c : Convert inline asm source ranges into clang SourceRanges and print them with the instantiated note.
    • 176d1d7 : I fixed this with r142127; these notes now make sense even w/o the caret.
    • fe627b0 : Hoist the logic I added to compute the macro name into a helper function. No functionality changed.
    • a47129e : Now that macro expansion notes are real notes and go through the same formatting as any other diagnostic, they will be properly line wrapped and otherwise pretty printed. Let's take advantage of that and the new factoring to add some helpful information to them (much like template backtrace notes and other notes): the name of the macro whose expansion is being noted. This makes a world of difference if caret diagnostics are disabled, making the expansion notes actually useful in this case. It also helps ensure that in edge cases the information the user needs is present. Consider:
    • 938ef24 : Fix the original bug in our diagnostic printing that got me started on this long quest: actually use the note printing machinery for each macro expansion note rather than a hacky version of it. This will colorize and format the notes the same as any other. There is still some stuff to fix here, but it's one step closer.
    • 4ba5565 : Now that the structure of this is more reasonably laid out, fix a long standing deficiency: we were providing no macro backtrace information whenever caret diagnostics were turned off. This sinks the logic for suppressing the code snippet and caret to the code that actually prints tho code snippet and caret. Along the way, clean up the naming of functions, remove some now fixed FIXMEs, and generally improve the wording and logic of this process.
    • e0376c0 : Add a prefix to the existing test to prepare for more tests of other backtrace behavior.
    • 1aaddf2 : Fold two run lines into a single logical one, and move them down below the important code in this test to make the test more stable. Now adding further tests won't shift the line numbers occuring in the diagnostic output.
    • 2b54d3d : Rename this test to a more general name in preparation for adding more tests to it to cover more of the macro bactrace functionality.
    • 5ca2abb : Enable CREATE_SUBDIRS for a performance win, because there are a lot of files being generated.
    • 2ed3495 : Add proper doxyments to the entry point routine, and remove a dead parameter.
    • 21a869a : Persist the TextDiagnostic object across multiple diagnostics as long as the SourceManager doesn't change, and the source files don't change. This greatly simplifies the interfaces and interactions. The lifetime of the TextDiagnostic object forms the 'session' over which we attempt to condense and deduplicate information in diagnostics.
    • 7531f57 : Clean up the names of all the TextDiagnostic methods (and even a static function) to agree with the coding conventions, and in one case have a bit more information in it.
    • 6ddd887 : Move two functions out of the public interface that shouldn't have ever been there. Also delete their redundant doxyments in favor of those in the source file. I'm putting the doxyments for private and static helpers into the implementation file, and only the public interface doxyments into the header. If folks have strong opinions about this type of split, feel free to chime in, I'm happy to re-organize.
    • db463bb : Graduate the TextDiagnostic interface to its own header and source file, making it accessible to anyone from the Frontend library. Still a good bit of cleanup to do here, but its a good milestone. This ensures that *all* of the functionality needed to implement the DiagnosticConsumer is exposed via the generic interface in some form. No sneaky re-use of static functions.
    • 1f3839e : Move the message printing to a class-static function so that it can be part of the TextDiagnostic interface without requiring a full instance.
    • 7eb84dc : Move the diagnostic level printing into a class static helper. This will allow the TextDiagnosticPrinter to continue using it even if TextDiagnostic is implemented in a separate file.
    • 03efd2e : Rationalize the last bit of "arbitrary" state that is carried between diagnostics to control suppression of redundant information. It now follows the same model as all the other state, and has a bit more clear semantics.
    • 43bcdb2 : Avoid duplicate unavailbility diagnostics in objc++. // rdar://10268422
    • 86d18c5 : Place static initializers on linux into the ".text.startup" section, so the linker can group them together for performance.
    • bb13c32 : obj-c++: allow the getter/setter to return/take parameters by reference. // rdar://10188258
    • 967c118 : Internals manual: eliminate mention of System library
    • 1d236ab : Replace vectors with arrays.
    • d614040 : Neither 'Warning' nor 'NonNote' was a good name for this location... It's the last include-stack-root we tried to walk up. Use a better name and better doxyments for it.
    • 67e2d51 : Nuke a bunch of FIXMEs that are now fixed. =] Also, remove the now-dead TextDiagnosticPrinter argument to the TextDiagnostic helper class. This cements the proper ordering of things: TextDiagnostic is now a viable stand-alone class for emitting pretty-printed textual diagnostics to a terminal.
    • cae9ab1 : Sink the include stack printing into the generic text diagnostic utility. This is a particularly nice win because it removes a pile of parameters from these routines. Also name them a bit better. I'm trying to follow the pattern of 'emit' routines writing directly to what is expected to be the final output, while 'print' routines take a output stream argument and can be used to build up intermediate buffers, etc.
    • f54a614 : Rationalize some of how the locations of prior diagnostics are tracked across emissions.
    • 9ed3066 : Sink the EmitDiagnosticLoc method down to the generic TextDiagnostic interface now that its only caller is there.
    • 60e4a2a : Sink the non-caret diagnostic logic down and out of the diagnostic consumer. The TextDiagnostic interface now has a generic entry point for emitting a diagnostic which uses a minimal interface that should be compatible with StoredDiagnostics such as are available in libclang etc.
    • 55c6110 : Simplify the interface of a helper method in the TextDiagnosticPrinter to operate directly on the source location and ranges associated with a diagnostic rather than digging them out of the diagnostic. This had a side benefit of cleaning up its code a tiny bit by using the ArrayRef interface.
    • 2840928 : Add an accessor for all of the ranges in a diagnostic as an ArrayRef. This will simplify a number of calls in the diagnostic printing going forward.
    • 0aa86c0 : Add -Wc++98-compat warning for deduced 'auto' type specifier.
    • 7fe6208 : Implement -Wc++98-compat warnings for the parser.
    • 8b11b5e : Refactor: remove redundant check for 'final' specifier when parsing class/struct definition.
    • 95fa252 : Testcase for half of r142048.
    • 6a2ccc5 : Convert stray doxygen comments to regular comments. They logically represent the fields in FunctionProtoType.
    • b8706f9 : Revert "Move doxygen comments to pair with the actual values."
    • d60feeb : Use of override keywords in C++98 should produce a warning by default.
    • 05f9931 : Rename an ExtWarn to ext_ for consistency.
    • 29e3a31 : Don't warn about use of 'final' in ill-formed C++98 code which didn't use 'final', and don't accept (then silently discard) braced init lists in C++98 new-expressions.
    • c8645e3 : Handle an edge case involving the conditional operator and throw expressions. PR10582.
    • d79e462 : Change 'Emit' to 'EmitCaret' which sums up what it *should* be doing. Also note that it is actually doing much more than it should. This paves the way for building a more generic 'Emit' routine that is the real entry point here.
    • 661a996 : -Wc++98-compat warnings for the lexer.
    • b75a345 : Teach the ASTImporter to perform DeclContext lookups in a way that avoids loading data from an external source, since those lookups were causing some "interesting" recursion in LLDB.
    • fd5f686 : Add c_alignas and cxx_alignas features
    • 60d222f : Tweak the C++11 status prose a bit. We still need better user guidance on the standard library issue
    • 8eb5b29 : Missed tests for half FP support
    • aa4a99b : Provide half floating point support as a storage only type. Lack of half FP was a regression compared to llvm-gcc.
    • 43ac6d0 : Switch the C++11 status table from a developer-centric list to a user-centric list, with Clang version numbers, following GCC's lead (and user requests).
    • ce1846e : Attempt to fix Windows buildbot, round 2.
    • dfa64ba : Add template instantiation support for AtomicExpr.
    • 7c9412c : Teach the ASTImporter not to import redundant fields.
    • 1c522f7 : Attempt to fix buildbot failure on Windows.
    • d9b0fdf : vfork comes from unistd.h
    • abb5afa : Allow calling ASTUnit::LoadFromCompilerInvocationAction with a previously created ASTUnit.
    • 2be4607 : Misc fixes for atomics. Biggest fix is doing alignment correctly for _Atomic types.
    • 41be673 : -Wc++98-compat: warn on C++11 attributes and alignas.
    • 84ef899 : Test for r141985.
    • b8e778d : Don't try to diagnose anything when we're passing incomplete types through varargs. This only happens when we're in an unevaluated context, where we don't want to trigger an error anyway. Fixes PR11131 / rdar://problem/10288375.
    • e5acd13 : Reinstate r141898 (reverted in r141921), without the -Wc++98-compat-variadic-templates flag. Consensus is that -Wc++98-compat is a useful addition to clang, but per-C++11-feature warnings may not be. Original patch by Jeffrey Yasskin.
    • 85df96c : Refactor static analyzer to use simpler interface to constant expression evaluation.
    • fe6f648 : [temp.explicit]p1: constexpr cannot be specified in explicit instantiations.
    • f886d6f : Fix the CXX_INCLUDE_ROOT case that was out of date with ScanLibDirForGCCTriple.
    • 663b26a : Harden test for windows paths.
    • b8989f2 : Change operator for raw_ostream and NamedDecl to take a reference instead of a pointer.
    • 2b5cfbc : Simplify code to avoid a useless string copy.
    • bcbca75 : Upgrade to PathV2.
    • c95ff94 : Add parens to pacify GCC.
    • 597cad6 : Fix misplaced comment.
    • 2e8b97c : Make value kind based on the return type of the getter, not property type, for when getter may be a reference type. // rdar://10188258 revised.
    • 72b2625 : [PCH] Serialize info about redeclared objc methods.
    • d5951cb : Add flags for the remaining shift related warnings (-Wshift-count-negative, -Wshift-count-overflow).
    • a1de8cb : objc-arc: Improve arc diagnostic when method is not found in receiver's class. // rdar://9970739
    • d1af3b9 : Add __nodebug__ attribute to functions in arm_neon.h
    • cb1c9c3 : Under ARC, merge the bit corresponding to the ns_returns_retained attribute from the first declaration to later declarations. Fixes rdar://problem/10142572.
    • 9ce6377 : Only warn in -Wliteral-conversion if the conversion loses information
    • 2060650 : When declaring an out-of-line template, attempt to rebuild any types within the template parameter list that may have changed now that we know the current instantiation. Fixes rdar://problem/10194295.
    • 6164ea1 : Added clang_getCompletionAnnotation and clang_getCompletionNumAnnotations to retrieve annotations from completion string.
    • 3a919e7 : Really protect from infinite loop when there are objc method redeclarations.
    • 1e2b3d7 : Updating the Clang website to refer to C++'11 instead of C++'0x
    • b40034c : Keep track of objc method redeclarations in the same interface.
    • 905c45f : Use Triple.isOSDarwin() instead of comparing against Triple::Darwin.
    • bb19cd8 : Update open source static analyzer build.
    • 1f528a6 : Move doxygen comments to pair with the actual values.
    • 2ed7cb6 : PR11124: Don't overwrite memory outside of a base class when performing zero-initialization before running its constructor.
    • d1cb2dc : Fix grammaro
    • 3d5f955 : Add a preprocessor callback that is invoked every time the 'defined' operator is seen, from Jason Haslam!
    • 78f0ea7 : Add support for -std=gnu90 and -std=c++03, for compatibility with modern gcc.
    • f38eaa4 : Revert the -Wc++98-compat flag because dgregor doesn't like it.
    • 5fa065b : objc-arc: 'Class' property is implicitly __unsafe_unretained. // rdar://10239594
    • 575fdda : Rename -Wc++0x-compat, -Wc++0x-extensions and -Wc++0x-narrowing from c++0x to c++11. The old names are kept for backwards-compatibility. Patch by Ahmed Charles! Names for backwards-compatible DiagGroups removed by me.
    • 133ca80 : Fix a test case where FileCheck is used to test code corrected by -fixit. If the code file is not run through the preproccessor to remove comments, then FileCheck will match the strings within the CHECK commands rendering the test useless.
    • 9469678 : Convert newly-added test from -std=c++0x to -std=c++11.
    • cda5782 : Extend -Wno-sizeof-array-argument to strncpy and friends.
    • 762bb9d : Update all tests other than Driver/std.cpp to use -std=c++11 rather than -std=c++0x. Patch by Ahmed Charles!
    • 48a9d18 : Implement the first piece of a -Wc++98-compat flag so that people can build in C++11 mode but keep their sources compatible with C++98. This patch implements the -Wc++98-compat-variadic-templates sub-flag and -Wc++98-compat to include it.
    • 73fb350 : Recommit:
    • 0b1b5b8 : Add test for new -std=c++11 and -std=gnu++11 command-line arguments.
    • 84cbd4b : Add triple for RHEL 5 to the libpath collecting logic.
    • 9e76172 : Tweak -Wuninitialized's handling of 'int x = x' to report that as the root cause of an uninitialized variable IFF there are other uses of that uninitialized variable. Fixes rdar://problem/9259237.
    • 64a371f : HasFormOfMemberPointer implies IsAddressOfOperand for an overload set. Simplify
    • ee697e6 : Allow calling an overloaded function set by taking the address of the functions, e.g., (&f)(0). Fixes rdar://problem/9803316.
    • 2f7aa99 : TCE target: conversion of OpenCL reqd_work_group_size attr to metadata
    • 5f1c822 : Allow for annotate attributes after access specifiers. When such attributes are found, propagate them to subsequent declarations.
    • 13f8daf : Fix crash-on-invalid, improve error recovery, and test coverage for missing colon after access specifiers in C++
    • dac6cec : Fix MSVC build.
    • 5fad9b8 : When we determine that a function template specialization produced as part of template argument deduction is ill-formed, we mark it as invalid and treat it as a deduction failure. If we happen to find that specialization again, treat it as a deduction failure rather than silently building a call to the declaration.
    • 183a8de : Add test case for __has_warning.
    • 18c407f : Change __extension__ to disable only diagnostics controlled by -pedantic.
    • 6700415 : Add returns_twice to functions that are known to return twice. This implements the same behavior of gcc by keeping the attribute out of the function type.
    • d768150 : Implement built-in macro '__has_warning', which allows one to query if a warning flag is valid. Fixes rdar://problem/10263428.
    • b3df138 : Switch diagnostic text from "C++0x" over to "C++11".
    • 4671730 : We do parse hexfloats in C++11; make it actually work.
    • 28e0635 : Revert file/scope handling patches. gdb testing revealed a couple of bugs.
    • d596c4d : The Objective-C rewriter uses the fragile ABI, always.
    • 920c9c1 : Fix typo in name of diagnostic.
    • 209dfbe : Handle the case where preprocessor entities are not received in order, fixes http://llvm.org/PR11120
    • 312fb51 : Add -std=c++11 and -std=gnu++11 language flags, from Ahmed Charles
    • 4a8dfb5 : Introduce BalancedDelimiterTracker, to better track open/close delimiter pairs and detect when we exceed the implementation limit for nesting depth, from Aaron Ballman!
    • d41679d : Teach __has_nothrow_assign not to complain about access (GCC and EDG ignore access entirely for it) and not to crash on assignment operator templates. Fixes PR11110.
    • 55acb0d : Removed extra line in comment.
    • 7e1812f : Add target info for Linux on PPC & Sparc. Patch by Hal Finkel!
    • 796dbfb : Introduce SourceManager::getFileLoc which returns a file location taking into account macro arguments.
    • b6a4ac4 : [libclang] Allow using getDeclCursorUSR function with a Decl* and not a cursor.
    • 9049cf6 : [libclang] Make MakeCXTranslationUnit usable outside CIndex.cpp.
    • 5fa6a04 : constexpr: don't consider class types with mutable members to be literal types.
    • c6bfbca : Remember to set the location in EmitGlobalVariable to the current decl if we're going to delete the setLocation as we did in 141732.
    • d5e1d60 : Handle Perforce-style conflict markers like normal conflict markers. Perforce swaps over the and markers, and uses shorter markers than traditional tools.
    • 13546a8 : objc: note location of the previously declared property in the diagnostic.
    • 6dbba4f : Catch placeholder types in DefaultLvalueConversion and DefaultFunctionArrayLvalueConversion. To prevent significant regression for should-this-be-a-call fixits, and to repair some such regression from the introduction of bound member placeholders, make those placeholder checks try to build calls appropriately. Harden the build-a-call logic while we're at it.
    • 336c8f7 : objc rewriter: Restore objc_msgSend_stret/objc_msgSendSuper_stret declaration to their fragile-abi representation.
    • 4b2d549 : Start handling debug line and scope information better:
    • ab5278e : 80-column and tab cleanup.
    • 944542e : Reorder this to make it easier to add more changes for a location set.
    • 8a1d6a5 : PR11062: Make C99 inlining work properly for names with associated builtin libcalls.
    • 0c91cce : Fix test: don't use __thread without a target triple.
    • f10d917 : Constant expression evaluation: refactor value initialization and scalar list initialization into base class.
    • 9e3c20b : Silence some -Wuninitialized false positives with gcc.
    • 98d86b9 : Add a -Wc++0x-compat warning for C++11 keywords used as identifiers when in C++98 mode. Only the first occurrence of each keyword will produce a warning.
    • 2492c89 : Add support for viewing the module graph via Graphviz, for debugging purposes.
    • 92d6d40 : Driver: Add support for a new -nostdlibinc option. - This disables the system include directories, but not the compiler builtin directories. Useful for projects that want to use things like the intrinsic headers, but are otherwise freestanding.
    • a268fc0 : Frontend: Replace -nostdinc by -nostdsysteminc (which is just system include paths). The -nostdinc behavior is now -nostdsysteminc + -nobuiltininc.
    • 71fdf46 : [analyzer] Remove an unused member variable.
    • d8d3ced : Rename SemaCXXCast.cpp to SemaCast.cpp.
    • e1677d9 : Add more testing for -Wc++0x-compat warnings.
    • b1576f7 : [analyzer] CheckerContext updates checkDst in it's destructor, so make sure the object is destructed before checkDst is used.
    • c892c5f : For the FileChanged Preprocessor callback, when exiting a file, pass its FileID.
    • 257e17f : Add an explanatory comment to test/SemaCXX/typo-correction.cpp
    • c800f68 : [analyzer] Fix a typo.
    • 769bb2d : Get rid of ShouldDeleteMoveConstructor.
    • c32d684 : Consolidate copy constructor deletion into ShouldDeleteSpecialMember.
    • a7957ff : [analyzer] Warn about the use of insecure, deprecated vfork() function PR11053 (http://llvm.org/bugs/show_bug.cgi?id=11053).
    • dd4a889 : Allow regparm attribute for PNaCl target
    • 276b061 : Initial implementation of __atomic_* (everything except __atomic_is_lock_free).
    • f11dbe9 : [Microsoft] If -fms-compatibility, then downgrade missing typename error to warning at function prototype scope.
    • 71c7efa : Added natural stack alignment to target-data.c test case.
    • fac9467 : Add typo correction for type names.
    • e1e7862 : Place diagnostic group ext_typecheck_decl_incomplete_type under a -W flag.
    • 567c600 : Fixed natural stack alignment for Linux x86-32. Thanks Eli.
    • f09ce39 : Clean up DiagnoseInvalidRedeclaration a bit
    • d7e19ce : Move a couple chunks of ActOnFunctionDeclarator to separate functions
    • 2c712f5 : Move some bool flags out of function parameter lists.
    • 2afd766 : Only accept a typo correction if it doesn't trigger additional errors
    • db92422 : Extend lvalue evaluation in ExprConstant.cpp to handle CK_LValueBitCast (which is completely trivial). PR8836.
    • f4f5003 : Update target data strings for ARM and X86 to include the natural stack alignment parameter "Ssize" that was introduced in r141599.
    • b008012 : Don't crash in Sema::IsSimplyAccessible if the declaration is not a C++ class member. Fixes PR11108.
    • b77d197 : Make sure we initialize the "extra" data within the libclang code completion context, in case we end up having no code-completion callback. Individual instances of this problem are always bugs that need to be fixed, but it's better to make sure we have initialized data here.
    • 158ebfb : A couple random preprocessor changes that got ported from C99 to C++11.
    • 13e1bca : When performing a user-defined conversion via a constructor, be sure to check whether the constructor is accessible. Fixes rdar://problem/10202900.
    • 46eaf77 : [analyzer] Teach the static analyzer about CXXForRangeStmt. Patch by Jim Goodnow II!
    • e50b015 : Rework construction of CXXForRangeStmt not to recycle the same DeclRefExpr in multiple subexpressions. This breaks the tree structure of the AST and completely breaks the CFG invariants.
    • 57165be : [libclang] Do ConcurrencyCheck for clang_getLocation as well.
    • a696ece : [libclang] Implement ConcurrencyCheck using a recursive mutex to allow re-entrancy in the same thread. The checks are performed only in DEBUG, it becomes no-op in release mode.
    • 9d1bbea : objc: err on a property designated both atomic and nonatomic. // rdar://10260017
    • c91562c : Revert r140009, about disabling clang's builtin in -fms-compatibility mode.
    • 8642f21 : Link in Scrt1.o instead of crt1.o when -pie is specified.
    • 089e893 : When substituting into a sizeof parameter pack expression in a context where we can't expand (i.e., multi-level substitution), be sure to substitute the pack with its level-reduced pack. Fixes PR10230.
    • 30aa951 : Partially revert r141374: allow use of libc++ prior to Mac OS X 10.7.
    • e305e81 : When an included non-system directory duplicates a system directory the clang frontend removes the non-system directory to maintain gcc compatibility. When this happens NumAngled needs to be updated. PR11097
    • a6b8b2c : Constant expression evaluation refactoring: - Remodel Expr::EvaluateAsInt to behave like the other EvaluateAs* functions, and add Expr::EvaluateKnownConstInt to capture the current fold-or-assert behaviour. - Factor out evaluation of bitfield bit widths. - Fix a few places which would evaluate an expression twice: once to determine whether it is a constant expression, then again to get the value.
    • fcdd2cb : Don't suggest 'noreturn' for function template instantiations, because it might be wrong for other instantiations of the same function template. Fixes PR10801.
    • 72a81d2 : Now that we support move generation, mention this in the language extension and C++ status pages. Also update the C++ status for default functions, which are complete now that we can generate move functions, and destructor exception specifications, which I did a while ago.
    • 1055393 : Give nicer note when a member redeclaration has or lacks 'const'
    • 36bc2c6 : objc: Some refactoring of overriding method decl. code for future work.
    • f8b6e15 : Don't analyze comparisons in type- or value-dependent subexpressions. Fixes PR10291.
    • d61db33 : Per C++ [class.bit]p2, unnamed bit-fields are not members. Fixes PR10289.
    • 6e43375 : constexpr: Disable checking of constructor member initializer lists for constexpr constructor templates. Such checking is optional, and currently hard to get right since clang doesn't generate implicit member initializers until instantiation (even for non-dependent members).
    • 5a706dc : Don't complain about qualified property or ivar access when the qualifier itself is invalid. Crasher noticed by Fariborz.
    • d24c306 : When adding a direct initializer to a declaration, allow the initializer to update the type of the declaration. For example, this allows us to determine the size of an incomplete array from its initializer. Fixes PR10288.
    • 147545d : Parse the initializer for a class member after handling its declarator, so that the declarator is in scope for the initializer. Fixes PR9989.
    • 25aaff9 : Always add the built-in overload candidates for operators &&, ||, and !. Fixes PR9865.
    • 2b9e220 : Remove the TODO file; it's not interesting any more
    • b8da98a : Another case of HadMultipleCandidates being used uninitialized.
    • e16da07 : Begin work consolidating ShouldDelete* functions.
    • 6e0afc8 : Parse LLVM command line arguments after plugins have been loaded
    • 883af83 : Implement the restrictions in C++ [class.friend]p6, which disallow defining a friend function with a qualified name or in a local class. Fixes PR9853.
    • b5ae92f : Diagnose attempts to qualify the name of an instance variable or property in an Objective-C++ member access expression. Fixes PR9759.
    • 6d0468b : Push "out-of-line" declarations into scope when their lexical/semantic redeclaration contexts are the same, as occurs within linkage specifications. Fixes PR9162.
    • ac57f0b : The effective context of a friend function is its lexical context. Fixes PR9103.
    • 6c73a29 : For the various CF and NS attributes, don't complain if the parameter or return types are dependent. Fixes PR9049.
    • d8f5b33 : Per the note in C++0x [temp.deduct.call]p4, don't attempt template argument deduction against a function parameter that has no deducible template parameters in it. Fixes PR8598.
    • ae57ead : OpenCL: add driver/frontend support for precompiled headers
    • 33ab0da : A friend template specialization is also dependent if any of its template arguments are dependent. Fixes PR10913.
    • 44efed0 : Only allow taking the address of an expression of type 'overloaded function type' when that expression is actually an overloaded function reference (and not the address of an overloaded function reference). Fixes PR11066.
    • b5a0187 : Diagnose attempts to declare a non-static data member with a non-identifier name. Fixes PR10839.
    • 43fe245 : When building source location information for an _Atomic type, be sure to fill in the source locations for the underlying value type. Fixes an intermittent crasher (due to uninitialized data) in the PCH test for _Atomic types.
    • 5c340e8 : After instantiating a 'noexcept' expression, be sure to convert it to a boolean value and check that it is a constant expression. Fixes PR11084.
    • 8503564 : Initialize the HadMultipleCandidates flag.
    • 1b46d8d : objc: Do not warn about mismatch on Super's readonly property attribute, related to a readwrite property, and Sub's readwrite property. // rdar://9396329
    • 54dec5f : Silence a warning about casting away constness.
    • 0caed28 : lib/Frontend/CompilerInstance.cpp: Suppress a "Comparision of unsigned and signed" warning on Cygwin gcc-4.3.4.
    • 96e2171 : Fix "Uninitialized" warnings.
    • a789ca9 : Whitespace
    • 49de528 : Apparently getPtrToInt() takes an explicit type parameter to allow you to generate invalid bitcode, not so that it can actually produce a value of this type. This should fix PR11085.
    • 0628b72 : Free 'TheTargetCodeGenInfo' in the class CodeGenModule. This looks like an obvious memory leak that was reported from LLDB devs. The comment indicates the leak is deliberate, but I have no idea why this needs to be so. Please comment/revert if you know otherwise.
    • e3c944a : Fix warning on MSVC. Patch by Aaron Ballman.
    • 8ed7bec : Try fixing windows bots.
    • d7c8556 : Make clang-tblgen's Makefile independent of Clang's top-level Makefile, to avoid having to make it available for the cross build when it builds only clang-tblgen.
    • 2289717 : [arcmt] Ignore linking errors when doing ARC migration, rdar://10247606
    • 744f1cd : Provide basic static analyzer support for CXXTemporaryObjectExpr. Patch by Jim Goodnow II.
    • 15e2406 : [analyzer] Remove dead code.
    • a5937bb : Remove AnalysisContext::getLiveVariables(), and introduce a templatized mechanism to lazily create analyses that are attached to AnalysisContext objects.
    • ec2ec1f : In DeclContext::LoadLexicalDeclsFromExternalStorage don't clear out the fields if they are already loaded, just ignore them when we are building the chain in BuildDeclChain.
    • 3f5e8d8 : [analyzer] Previously, we were passing to CheckerContext enough info to construct ProgramPoint and it would pass it to NodeBuilder, which in turn would construct the ProgramPoint. Simplify it by just passing the ProgramPoint to CheckerContext. The ProgramPoint can only change if a checker tags it, in which case, we create a copy with the given tag.
    • 13bf633 : objc++: some minor cleanup and a test case for atomic setters which requires assignment operator.
    • 63d3201 : ProgramPoint cleanup after the previous commit r141408 (remove the copy constructor, mark withTag const).
    • 8828ee7 : Add braces around do-while body. The lack of them gives me the chills
    • dbc68bd : Add a simple PCH test for _Atomic.
    • af42712 : Add a copy constructor to ProgramPoint and pull withTag() method from a child. (withTag essentialy creates a copy with a given tag.)
    • 209f5bb : Add address spaces for TCE target. Patch by Pekka Jääskeläinen.
    • 682eae2 : Hack in a workaround for PR11082 until we have a proper fix. This un-breaks every glib-dependent compile with Clang.
    • 163b151 : Clang driver changes for iOS 5.0 and OS X Lion support.
    • ae1aee6 : More cleanup using StringSwitch.
    • baac1ea : objc rewriter. Fix declaration of objc_msgSend_stret/objc_msgSendSuper_stret. Fix an assert crash when casting a CF type to 'id'. // rdar://10250911
    • 5e1cdac : Rename TagDecl::isDefinition - isCompleteDefinition for better self-documenting code, since the semantics are subtly different from getDefinition().
    • 856ebfb : Remove FIXME obsoleted by change r141279 for PR11067.
    • 6595935 : Record layout requires not just a definition, but a complete definition. Assert this. Change IR generation to not try to aggressively emit the IR translation of a record during its own definition. Fixes PR10912.
    • aa2176b : r141345 also fixed a -Wuninitialized bug where loop conditions were not always flagged as being uninitialized. Addresses rdar://problem/9432305.
    • c5f740e : Fix infinite loop in -Wuninitialized reported in PR 11069.
    • a59956b : Use StringSwitch. Thanks for Chandler for the suggestion.
    • 7d65f69 : objc: Improve on diagnostic when atomic proeprty is synthesized on one accessor and user-provide with another.
    • 1b41716 : [analyzer] Static Analyzer Qualification Infrastructure: Scripts to support basic testing of the analyzer on external projects. This can be used as a basis for setting up a buildbot.
    • a180f04 : Move type-checking for C-style casts in C into the now-misnamed SemaCXXCast.cpp. Should have no functionality change.
    • c076e37 : Implicitly assume that a ObjC category to an unavailable interface is also unavailable; only give an 'unavailable' error on the @implementation of the category. rdar://10234078
    • 3a38744 : When using an unavailable/deprecated interface Foo inside Foo's interface/implementation don't emit unavailable errors.
    • 51c3b79 : llvm.memory.barrier is going away; remove the wrapper intrinsic __builtin_llvm_memory_barrier.
    • b001de7 : Support for C1x _Atomic specifier (see testcase). This is primarily being committed at the moment to help support C++0x atomic, but it should be a solid base for implementing the full specification of C1x _Atomic.
    • 5f22614 : Use strpbrk(3) instead of open coding it.
    • 17e2794 : Add missing include to clang-interpreter example, to make it work on Windows. Patch by Dean Pavlekovic.
    • 09d26ad : [driver] Fix test case for Windows due to fallout from r141202+r141205.
    • fd22cce : Remove DISABLE_ARM_DARWIN_USE_MOVT ifdefs. Radar 9456730.
    • c808503 : [static analyzer] Fix crash in LiveVariables and Environment::getSVal() when analyzing C++ pointer-to-member calls. Fixes rdar://problem/10243398.
    • 8052a4f : Add _mm_comige_sd to emmintrin.h, since I apparently forgot to do this in r138769.
    • 7c62714 : Rearrange for readability. No functional change.
    • 169a6e0 : Add a missing check for cortex-a9.
    • a4ae229 : CUDA: IR generation support for device stubs
    • 57e264e : objc++: For atomic properties of c++ class objec typet, appropriate operator= is called. Issue a warning for non-trivial case until runtime support is provided. // rdar://6137845
    • d51e43a : CUDA: add -fcuda-is-device flag
    • 6c0aa5f : CUDA: IR generation support for kernel call expressions
    • 744d90b : CUDA: set proper calling conventions for PTX
    • e57ffac : [libclang] Removed accidental addition of CXCursor_AnnotateAttr.
    • 51d7777 : Add the Clang tblgen backends to Clang, and flip the switch to cause the build systems to use clang-tblgen.
    • 733dbc8 : [libclang] Fix symbol export for clang_Range_isNull so MSVC won't complain.
    • 26fc0f9 : Fixed GCC (C90) and Clang warnings.
    • b52c0dd : PR11067: A definition of a constexpr static variable doesn't need an initializer if the in-class declaration had one. Such a declaration must be initialized by a constant expression.
    • d120596 : Added CXAvailability_NotAccessible to indicate that a declaration is available, but not accessible from the current code completion context.
    • aed123e : [libclang] Introduce clang_findReferencesInFile which accepts a cursor, a file, and a callback and finds all identifier references of the cursor in the file.
    • b11be04 : [libclang] Move the bulk of clang_getOverriddenCursors into a cxcursor::getOverriddenCursors C++ function, because SmallVectors are groovier that malloc'ing buffers.
    • d211cb7 : Use a sidetable in ASTContext for ParmVarDecls whose index exceeds the 8 bits reserved for that value in VarDecl. Fixes PR 10538.
    • f77c496 : Hoist truncation checking for ParmVarDeclBitfields::ParameterIndex into its own helper method. No functionality change.
    • b8b0e75 : OpenCL: add a non-standard extension, cl_clang_storage_class_specifiers, which enables support for C99 storage-class specifiers.
    • 41c8d6f : OpenCL: disallow '#pragma OPENCL EXTENSION all : enable', per OpenCL 1.1 9.1
    • 08f35a7 : Add -Wlanguage-extension-token option for ext_token_used warning.
    • 6ee5b93 : Clang-side build system infrastructure for multiple tblgens.
    • 390909c : [analyzer] Remove the dependency on CheckerContext::getStmt() as well as the method itself.
    • d1ab1a2 : When constructing debug information for synthesized variables for the non-fragile ABI we may not be able to lay out the type and the debugger would ignore us even if we did put in the offset. Go ahead and just put any value there and don't look up the offset since it may not exist.
    • 1cd1d74 : Reformat comment.
    • 93edbc5 : Fix major regression in RetainCountChecker. DefaultSummaries were not being used when they were meant to be. Fixes rdar://problem/10241614.
    • 4eff823 : [analyzer] Remove the last dependency on CheckerContext::getNodeBuilder() as well as the method itself.
    • dff6ef9 : [analyzer] OSAtomicChecker implements evalCall in a very invasive way - it essentially simulates inlining of compareAndSwap() by means of setting the NodeBuilder flags and calling ExprEngine directly.
    • 9dd0065 : Document ObjCMethodDecl::setMethodParams.
    • 0d94094 : Fix crash when using archaic protocol, rdar://10238337
    • 88934e8 : Driver & AST: Implement support for -fpack-struct and -fpack-struct= command line options. - rdar://problem/10120602, PR9631
    • b390921 : Use APFloat::toString to print APFloats more precisely in the AST printer. Patch by Olaf Krzikalla.
    • 2280786 : [driver] For consistency, handle all shell special characters handled by the quoting code.
    • a2dd7d0 : [driver] The -v option doesn't quoted the command line arguments for historical reasons. However, it does seems practical to quote strings that need it. rdar://10221951
    • a1e797e : Fix the rewriter, rdar://10234024.
    • 42b2984 : Expose more statement, expression, and declaration kinds in libclang, from Manuel Holtgrewe!
    • 818eafb : PTX: Set proper calling conventions for PTX in OpenCL mode.
    • 2572849 : Seriously ugly hack, part 2
    • 1872e79 : Seriously ugly hack to try to get the Windows builders back online
    • 2bc7507 : Introduce a simple file-based locking protocol for on-demand module creation, so that only a single Clang instance will rebuild a given module at once (and the others will wait).
    • 7cc58b4 : Added a flag to identify resolved overloaded function references.
    • b45ae25 : Refactor the analysis of C++ cast expressions so that even C-style and functional casts are built in SemaCXXCast.cpp. Introduce a helper class to encapsulate most of the random state being passed around, at least one level down.
    • 1203600 : Use the InstalledDir correctly, and test it correctly as well. =/ Should have noticed this previously, sorry.
    • 68395a7 : Fix doxygen comment.
    • dbc2144 : Teach Clang to cope with GCC installations that have unusual patch "versions". Currently, these are just dropped on the floor, A concrete version number will always win out.
    • 5058e3a : Implement the feature I was originally driving toward when I started this saga. Teach the driver to detect a GCC installed along side Clang using the existing InstalledDir support in the Clang driver. This makes a lot of Clang's behavior more automatic when it is installed along side GCC.
    • 53c8167 : c: assignment/init of a function pointer whose function(s) return to one which does not return (has noreturn attribute) should warn as it is an unsafe assignment. // rdar://10095762 c++ already handles this. This is the c version.
    • 203050c : Don't allow an rvalue reference to bind to the result of a calling a conversion function whose result type is an lvalue reference. The initialization code already handled this properly, but overload resolution was allowing the binding. Fixes PR11003 / rdar://problem/10233078.
    • cbb7add : [analyzer] Removing more references to CheckerContext::getNodeBuilder(): ask CheckerContext to generate the nodes.
    • e089088 : Hoist the other messy part out of an inner loop and into a helper function, cleaning up along the way.
    • 50f3cad : [analyzer] Refactor node generation to use less code.
    • 4c9403c : Hoist the first chunk of this into a helper function. No functionality change.
    • 43f7e62 : [driver] Improve r141053 by only emitting the warning if the original input was assembly. Otherwise, something like -save-temps causes the integrated assembler to warn.
    • 7441068 : Fix Windows+MinGW which introduces noise into path separators.
    • 6ab8e62 : Now that multiple prefixes are much cheaper to search for GCC installations, support them when installed directly under the system root ('/lib/gcc/...' essentially).
    • 6d9694c : Rework the search for a GCC installation still further. This combines two fundamental changes, as they ended up being interrelated.
    • 53201a8 : Basic/Diagnostics: Apparently, #pragma ... diagnostic is intended to override the command line options (at least according to GCC's documentation). GCC 4.2 didn't appear to actually do this, but it seems like that has been fixed in later release, so we will follow the docs.
    • 5d0ea6d : [analyzer] Removing references to CheckerContext::getNodeBuilder(): checkers can obtain block count directly from the Context.
    • 118c6c0 : Remove a nonsensical bit of code from InitListChecker::getStructuredSubobjectInit which was increasing the reserved size for an init list past its maximum possible size. Fixes PR11056, a case where we were reserving a bunch of memory for arrays that was never actually used.
    • 68af536 : objc: Turn diagnostic on property type mismatch in continuation class into warning. // rdar://10231514
    • 8ba7214 : [analyzer] Remove unused methods, add comments to others.
    • 06d92bf : Place diagnostic warn_atomic_property_rule under a -W flag. Fixes rdar://problem/10230631.
    • d649c57 : Place diagnostic warn_ownin_getter_rule under a -W flag. Fixes rdar://problem/10230626.
    • 3b8b00b : Place diagnostic ext_predef_outside_function under a -W flag. Fixes rdar://problem/10226192.
    • ef48e05 : Fix include path detection on Fedora 15 with GCC 4.6.1. Patch by Arthur Haas.
    • 917b28b : Add bitmaps for strong / weak ivar layout (GNUstep runtime).
    • f347667 : Place warning warn_drv_no_debug_w_integrated_as under a -W flag.
    • 2a1a89e : Revert r141060. We should NEVER add new warnings that aren't guarded by flag.
    • c916377 : Add a comment explaining that I have a better plan for implementing the GCC installation search that requires fewer filesystem operations. Planning to implement that next as the current approcah while thorough (and so far looks correct) does a very unfortunate number of filesystem operations.
    • a24b980 : Invert the loop for detecting installed GCC trees. This make the loop find the newest GCC available, among other goodness. It makes the entire system much less prone to error from prefixes and/or system roots pruning early the set of triples and GCC versions available.
    • 810e081 : Fuse the two halves of the GCC installation detection. This is significantly cleaner (IMO) and more principled. We now walk down each layer of the directory hierarchy searching for the GCC install. This change does in fact introduce a significant behavior change in theory, although in practice I don't know of any distro that will be impacted by it negatively, and Debian may (untested) get slightly better through it.
    • 348f16f : Mark calls to objc_retainBlock that don't result from casts to id so that we can still optimize them appropriately.
    • 10a82cd : Rip out flags for controlling C++ "production mode" separately.
    • f4e541c : Specify -ccc-clang-archs for le32 targets which may not be supported by default.
    • 1711fc9 : Improve location fidelity of objc decls.
    • 55d78d2 : Update testcase for r141053+r141055.
    • adc4afb : Factor the data apart from the logic of locating various GCC installations. This first selects a set of prefixes and a set of compatible triples for the current architecture. Once selected, we drive the search with a single piece of code.
    • d0790b8 : [driver] Improve r141053 by only emitting the warning if the original input was assembly. Otherwise, something like -save-temps causes the integrated assembler to warn.
    • 968b7a7 : [driver] Emit a warning if the user has requested debug information and we're using the integrated assembler. rdar://10216353
    • 0ced799 : When build a module on demand, run the module-building job on a separate thread with the "suitably large" stack, so we don't blow the stack when building modules recursively.
    • c3b4575 : Make sure SourceManager::getFileIDLoaded doesn't hang in release build because of invalid passed parameter. rdar://10210140
    • 3381a73 : [analyzer] Remove redundant state (AnalysisContext pointer for every BinaryOperator tracked) from IdempotentOperationChecker.
    • 175fb10 : objc arc: Suppress certain arc diagnostics on unavailable functions. // rdar://10186536
    • 1e9775d : [analyzer] In UndefBranchChecker, use a node generator which does not create an edge/branching. (ExprEngine should be in charge of generating edges. The checkers should examine the condition and generate PostCondition node if needed.)
    • 9c81bc2 : [analyzer] Cleanup in UndefBranchChecker: - Remove unused FindUndefExpr::ProgramStateManager. - The Condition parameter of the callback is the terminator of the block, no need to retrieve it again.
    • 09d8212 : Fixed source range for template implicit instantiations.
    • a08529c : Fixed exapnsion range for # and ##.
    • 048e649 : Refactor the detection of a GCC installation into a helper class. This is designed to allow the detection to record more rich information about the installation than just a single path.
    • c6ac322 : objc++: Accessing explicit property of reference type need not bind to a temporary. Fixes //rdar://10188258
    • 25bedca : PTX: Add some basic support for OpenCL address spaces
    • 7035f31 : Don't crash when trying to emit too many fixits. Also, keep some constants in sync between DiagnosticsEngine and PartialDiagnostic.
    • f87cced : Propagate __attribute__((returns_twice)) from C to IL.
    • c5306b0 : Test a multilib setup on a 64-bit host. This is the far more common configuration, although the test still stubs out more directories than are necessary or common in order to exercise all of the lookup paths observed with upstream GCC.
    • 38ec546 : Enable generic multilib support on 32bit hosts. Previously this was only enabled for debian hosts, which is quite odd. I think all restriction on when Clang attempts to use a multilib installation should go away. Clang is fundamentally a cross compiler. It behaves more like GCC when built as a cross compiler, and so it should just use multilib installs when they are present on the system. However, there is a very specific exemption for Exherbo, which I can't test on, so I'm leaving that in place.
    • b6fdf8f : Relax an assertion here a bit. This doesn't really matter, as we won't include *any* path on crtbegin.o unless we actually find such a file via one of the search paths. We still strictly check the search paths right after this, so we'll catch any issues there.
    • 621e6a6 : Test that we include a GCC-triple-prefixed tree. While I don't know of any distros that use this, building a multilib GCC from mainline will install linker scripts here.
    • 663abc9 : Teach the logic for locating an installed GCC about the system root. This requires fixing a latent bug -- if we used the default host triple instead of an autodetected triple to locate GCC's installation, we didn't go back and fix the GCC triple. Correct that with a pile of hacks. This entire routine needs a major refactoring which I'm saving for a subsequent commit. Essentially, the detection of the GCC triple should be hoisted into the same routine as we locate the GCC installation: the first is intrinsically tied to the latter. Then the routine will just return the triple and base directory.
    • fde8d14 : Add initial support for applying the sysroot to library search paths. This is still very much a WIP, but sysroot was completely broken before this so we are moving closer to correctness.
    • 491306a : Allow getting all source locations of selector identifiers in a ObjCMethodDecl.
    • b994e6c : Move field in ObjCMessageExpr to avoid padding.
    • 2071808 : Allow getting all source locations of selector identifiers in a ObjCMessageExpr.
    • 8d9ed79 : ArrayRef'ize ObjCMessageExpr
    • 04fb8ef : Add an assertion that we don't overflow the bitfield ObjCMessageExpr::NumArgs.
    • 11d7716 : Pass from the parser the locations of selector identifiers when creating objc method decls.
    • da92a7f : Don't keep NumSelectorArgs in the ObjCMethodDecl, the number can be derived from the selector.
    • 9513762 : Pass all the locations of the selector identifiers for a message expression from the parser.
    • d2deee1 : Rework the selection of builtin library search paths on Linux to precisely match the pattern and logic used by the GCC driver on Linux as of a recent SVN checkout.
    • 78dd67e : CUDA: diagnose invalid calls across targets
    • 1f24076 : CUDA: add separate diagnostics for too few/many exec config args
    • af15b4d : Add ConvertArgumentsForCall diagnostics for at least/at most n args
    • 8591a7f : CUDA: diagnose unconfigured calls to global functions
    • 80d2355 : Sorry, I misunderstood the interaction here; the GNU runtime does support both a fragile and non-fragile ABI, and it can be selected at runtime. That driver option also works on Darwin (although obviously the code is not necessarily usable if the system runtime is fragile) so just do that.
    • 591dbc7 : Use -fgnu-runtime to force the use of the non-fragile ABI; otherwise these tests would fail on hosts that happen to default to that, since that affects whether default synthesis can happen.
    • 4768b9c : Temporarily XFAIL this test until John or someone else who works on ObjC can look at it.
    • a9402e4 : Simplify this through the power of the ternary operator.
    • bc0df72 : Consolidate the currently bizarre 32/64 multilib selection logic a bit.
    • 3c2b5f7 : Fix another major performance regression in LiveVariables by not canonicalizing the underlying ImmutableSets on every analyzed statement (just at merges). Fixes rdar://problem/10087538.
    • d1e40d5 : Make -fobjc-nonfragile-abi the -cc1 default, since it's the increasingly prevailing case to the point that new features like ARC don't even support the fragile ABI anymore.
    • 6a835dd : Fix LiveVariables analysis bug with MaterializeTemporaryExpr and fix handling in ExprEngine. Fixes rdar://problem/10201666.
    • 2b014d6 : When performing an @throw in ARC, retain + autorelease the pointer, being sure to do so before running cleanups associated with that full-expression. rdar://10042689
    • cdda47f : Parse attributes written in an ObjC method parameter type as attributes on the parameter declaration.
    • b459cf3 : Address PR10616. The crash has already been fixed by Ted in r140725, so just refactor to use existing API + test case.
    • e82247a : Hey, maybe we shouldn't silently ignore decl attributes on declarators written as types.
    • 130e5ef : As I suspected, completely non-multilib machines just get no suffix. Make the suffixes optional everywhere, and just make sure they have the right value. The suffixes aren't the interesting part of this test anyways.
    • 9f569cc : constexpr: semantic checking for constexpr functions and constructors. Based in part on patches by Peter Collingbourne.
    • 00ca848 : Teach this test to cope with Windows suffixes so that msys builds can run it.
    • 37cbb0b : Correct my failure at writing proper regex's for FileCheck. Thanks Nick.
    • f3a852a : Allow for both 'lib' and 'lib32', as both seem to be in evidence. I've left a FIXME to go track down more distros and see if 'lib' is ever the 64-bit half.
    • 29bbe2b : There might be an 'ld' without any path prefix.
    • 2cf031d : Allow the results of cf_returns_not_retained function calls, or calls to audited functions without an explicit return attribute, to be casted without a bridge cast. Tie this mechanism in with the existing exceptions to the cast restrictions. State those restrictions more correctly and generalize.
    • 7df2ff4 : Tweak the interface for analyzing the CF conventions for a name to take a FunctionDecl* instead of an llvm::StringRef. Eventually we might push more logic in there, like using slightly different conventions for C++ methods.
    • c4cc403 : Add a test that ensures we get the basic multilib '-L' flags to 'ld' invocations on Linux.
    • eb86b5b : Revert r140604: "Let -B work for ld paths on Linux."
    • 5202a4d : Enable -Wstrlcpy-strlcat-size by default.
    • 717a20b : Mark a TagDecl when it is free standing (e.g. "struct foo;")
    • 26e0b30 : Revert my --working-directory option, which wasn't well thought through.
    • 1f634c6 : Add a section detailing the steps required to add an expression or statement to Clang.
    • f2e5945 : objc arc: allow objc_returns_inner_pointer on methods that return a reference type, since inner reference is much like an inner pointer. // rdar://10139365
    • f2cee5c : Fix compiler warning about && in ||.
    • da79da2 : Install a copy of the libc++ headers with clang. rdar://problem/10096516
    • 9afbfbe : Support dllimport and dllexport on x86-64 Windows. PR10978. Patch by Ruben Van Boxem.
    • ccae76c : objc gc: assigning to an objc object struct member through an ivar pointer to this struct must go through the none ivar writer barrier.
    • 225bf77 : Minor cleanup.
    • 2dfdb94 : [libclang] Introduce CXCursor_CXXAccessSpecifier for C++'s public:/private:/protected: specifiers.
    • 3c3ccd2 : Remove the conditional that avoided passing the Objective-C runtime specification flags to cc1. This fixes PR10369 (__builtin_NSStringMakeConstantString() selecting the wrong runtime in C / C++ code and crashing, although it doesn't fix the problem that instantiating the Mac runtime for non-Darwin targets was crashing.)
    • a891a32 : Fix a bug in the token caching for inline constructors in C++11, and improve error recovery in both dialects. This should fix the GCC test suite failures as well.
    • 8dfac0b : Add explicit attributes to mark functions as having had their CoreFoundation object-transfer properties audited, and add a #pragma to cause them to be automatically applied to functions in a particular span of code. This has to be implemented largely in the preprocessor because of the requirement that the region be entirely contained in a single file; that's hard to impose from the parser without registering for a ton of callbacks.
    • e4c6675 : Fix crash when analyzing C++ code involving constant enums and switch statements (rdar://problem/10202899).
    • 0658879 : [analyzer] Fix a bug in RetainReleaseChecker diagnostics. It gives more precise error message on the modified test case (and prevents duplicate diagnostics when we purge at block granularity).
    • d309528 : [analyzer] Add -analyzer-purge option which can take on multiple values, remove -analyzer-purge=none. (Small refactor as well: move the work of constructing AnalysisManager from the callers to the class itself.)
    • 3fedbe1 : Some fixes for MS-style asm parsing: specifically, add some error checking, and handle asm comments using semicolons correctly. (The comments are actually surprisingly tricky.)
    • 55dec86 : constexpr functions are implicitly const. More tests to follow.
    • 7426f79 : Fix typo.
    • 2d23ec2 : Suggest adding 'constexpr' if the GNU extension for in-class initializers for static const float members is used in C++11 mode.
    • 947be19 : Mark the ExtWarn for in-class initialization of static const float members as a GNU extension. Don't extend the scope of this extension to all literal types in C++0x mode.
    • 0f32caf : Minor refactoring. Enumerators may inherit the deprecated/unavailable attributes from the enumeration type. // rdar://10201690
    • eea0e81 : PR11040: CheckICE should not allow an lvalue bitcast as part of an integer constant expression.
    • 2da7a51 : In C++0x, static const volatile data members cannot be initialized in-class.
    • 1991b71 : PR11000: Fix crash on invalid.
    • c6d990a : constexpr: semantic checking for constexpr variables.
    • 97db726 : c - Enumerators may inherit the deprecated/unavailable attributes from the enumeration type. // rdar://10201690
    • c41f365 : Add more comments to several checker callback functions.
    • 82d0b0a : Add support for alignment-specifiers in C1X and C++11, remove support for the C++0x draft [[align]] attribute and add the C1X standard header file stdalign.h
    • 35f37cd : Add a warning group for warnings about using C1X features as extensions
    • 3497fdf : Add support for parsing an attribute-specifier-seq containing multiple attribute-specifiers
    • f190768 : Add support for parsing the optional attribute-specifier-seq at the end of a decl-specifier-seq
    • a95b9f6 : Driver: use correct search paths for multilib
    • fe98da0 : Add an ns_bridged attribute, used to specify that a pointer to the annotated struct type can be used as an Objective-C object pointer. If an argument is given, the type is actually "toll-free bridged" to the specific type named there, rather than just to 'id'.
    • 2f041d0 : Like IBOutletCollection, it only makes sense to apply the IBOutlet annotation to Objective-C object types. Fixes rdar://problem/10142685.
    • 4cd5791 : Do not warn about empty format strings when there are no data arguments. Fixes rdar://problem/9473155.
    • e37cdc4 : Unnecessary else
    • aeacae5 : Basic/Diagnostic: Kill off a few unnecessary functions now that refactoring is done, and add a note that the new setDiagnosticGroup{...} methods only operate on the current diagnostic state.
    • be1aa41 : Basic/Diagnostics: Rewrite DiagnosticIDs::getDiagnosticLevel completely to be straighter line code, use the new DiagnosticMappingInfo flags, and eliminate the odd MAP_WARNING_NO_WERROR and friend mappings. - This fixes a host of obscure bugs with regards to how warning mapping options composed with one another, and I believe makes the code substantially easier to read and reason about.
    • a5e4133 : Basic/Diagnostics: Add three explicit bits to DiagnosticMappingInfo to track "no-warning-as-error", "no-error-as-fatal", and "show-in-system-header", and update DiagnosticsEngine::setDiagnosticGroup{WarningAsError,ErrorAsFatal} and GetDefaultDiagMappingInfo to set them appropriately. - No actual functionality change for now, we still also use the diag::Mapping::{MAP_WARNING_NO_ERROR,MAP_ERROR_NO_FATAL,MAP_WARNING_SHOW_IN_SYSTEM_HEADER} for a little while longer.
    • 3f83946 : Basic/Diagnostics: Add a DiagnosticIDs::getDiagnosticsInGroup method, and use that in DiagnosticEngine instead of the convoluted calling into DiagnosticIDs which then calls back into the DiagnosticsEngine.
    • ba494c6 : Basic/Diagnostic: Add a DiagSate::getOrAddMappingInfo method. - Also, spell const_iterator as const_iterator.
    • 70456e9 : tests: Add some more tests for warning mappings.
    • 09ea68d : Basic/Diagnostics: Move setDiagnosticMapping() to using DiagnosticMappingInfo and eliminate setDiagnosticMappingInternal.
    • b1c99c6 : Basic/Diagnostics: Add a DiagnosticMappingInfo helper class, and switch to storing mappings with that instead of straying some magic constants about the source.
    • c3c4a89 : Basic/Diagnostics: Eliminate getDiagnosticMappingInfo method, which wasn't worth methodizing.
    • 1656aae : Basic/Diagnostic: Eliminate the extra "mapping" out-parameter now that I killed the sole client.
    • 76101cf : Basic/Diagnostics: Add an isDefaultMappingAsError method, and switch TextDiagnosticPrinter to use that instead of extracting the current mapping via getDiagnosticLevel, which fixes one class of corner cases w.r.t. printing the "-Werror" diagnostic option marker. - The TextDiagnosticPrinter code is still fragile as it is just "reverse engineering" what the diagnostic engine is doing. Not my current priority to fix though.
    • 80d572d : Fix 80-col viola.
    • 2587ede : Attempt to fix unit tests
    • 4aa8f2b : Basic/Diagnostic: Factor out DiagnosticsEngine::setDiagnosticGroup{ErrorAsFatal,WarningAsError} methods which more accurately model the correct API -- no internal change to the diagnostics engine yet though. - Also, stop honoring -Werror=everything (etc.) as a valid (but oddly behaved) option.
    • 08d6acf : Introduce an opt-in warning when a module is being implicitly built from sources.
    • aee526e : Introduce a pure virtual clone() method to DiagnosticConsumer, so that we have the ability to create a new, distict diagnostic consumer when we go off and build a module. This avoids the currently horribleness where the same diagnostic consumer sees diagnostics for multiple translation units (and multiple SourceManagers!) causing all sorts of havok.
    • 4213df3 : Basic/Diagnostics: Split out the default warning "no-Werror" and "show-in-system-header" bits, which is part of teasing them apart from the diagnostic mapping kind.
    • aa2164c : Change "Regions" to be "LexicalBlocks" since that's what they correspond to.
    • 5321bc4 : Rename EmitStopPoint in CGDebugInfo to EmitLocation. "stop points" don't exist anymore.
    • 69a1b74 : Reorder functions in the file.
    • 414ee4b : Call UpdateLineDirectiveRegion every time we want to emit a stop point in the code. Ensures that we don't miss any places and the check is reasonably cheap.
    • 441937c : Update comment.
    • cc78c6c : [driver] Add basic support for escaping XML characters in CC_LOG_DIAGNOSTICS strings. rdar://9696709
    • 78213e4 : objc arc: Diagnose block pointer type mismatch when some arguments types are ns_consumed and some otherwise matching types are not. This is objc side of // rdar://10187884
    • f79d90e : Check for empty predecessors for walking them.
    • f9d9527 : objc++ arc: Diagnose block pointer type mismatch when some arguments types are ns_consumed and some otherwise matching types are not. This fixes the objc++ side only *auch*. // rdar://10187884
    • 9a9cdde : Fix typo. string-convervion - string-conversion
    • 8cd8de4 : Tweak -Wobjc-missing-super-calls to not warning about missing [super dealloc] when in GC-only mode, and to not warning about missing [super finalize] when not using GC.
    • 440ec2e : For __weak/__strong/etc. ownership attributes, don't macro expand them in diagnostics.
    • 83450aa : Fix a typo spotted by Jonathan Sauer.
    • fcc1e50 : Introduce non-const Decl::getParentFunctionOrMethod.
    • de5db64 : [libclang] Introduce clang_Range_isNull.
    • b58404d : Install c-index-test also on CMake build, following up r140681.
    • 5b7803d : Attempt to silence the GCC -Wreturn-type warning...
    • 49defe6 : Generate tests for all of the x86 SIMD instruction feature set predefines based on the output of GCC as well as the CPU predefines.
    • f1aabcf : Add a little banner to this test. This lets my scripts more easily automate the process of updating and generating these tests.
    • 53bf4f9 : Fix a think-o on my part that got enshrined in a FIXME by setting up the __tune_...__ define as well.
    • 88c75b0 : Move some of the defines down to more natural locations, consolidating the target identifying macros at the top, including subtarget macros.
    • 26a3914 : Teach Clang to reject 32-bit only CPUs when compiling in 64-bit mode. Add 64-bit preprocessor macro tests.
    • f17ba33 : Simplify the control flow for predefined macro selection by using fallthrough now that we're working with a switch. Also remove a dubious "feature" regarding k6 processors and 3dnow and leave a fixme... Not that anyone is likely to care about correct tuning for k6 processors with and w/o 3dnow...
    • d9d3ddf : Switch the X86TargetInfo object from a string representation of the selected CPU model to the enumeration. This parses the string representation once using a StringSwitch on SetCPU. It returns an error for strings which are not recognized (yay!). Finally it replaces ridiculous if-chains with switches that cover all enumerators.
    • 499d972 : Introduce an enumeration for the x86 CPUs recognized by Clang. I've tried to give these nice doxyments, but if I've gotten any of my history wrong, please chime in.
    • c3a2e65 : Clean up a bit of the uses of CPU in the TargetInfo classes. This makes it an error if a CPU is provided for a target that doesn't implement logic handling CPU settings, to match the ABI settings. It also removes the CPU parameter from the getDefaultFeatures method. This parameter was always filled in with the same value as setCPU was called with, and at this point every single target implementation that referenced the CPU within this function has needed to store the CPU via setCPU anyways in order to implement other interface points.
    • 7ca2684 : Driver: Fix two bad typos that were breaking the buildbots.
    • d1223d8 : Install c-index-test as part of install-clang-c Makefile rule.
    • f6cf1c2 : Begin fixing Clang's predefined macros for various architectures. This is *very* much a WIP that I'll be refining over the next several commits, but I need to get this checkpoint in place for sanity.
    • c8680f4 : Introduce Decl::getParentFunctionOrMethod which if the decl is defined inside a function/method/block it returns the corresponding DeclContext, otherwise it returns null.
    • 4f8de27 : [driver] If no OSX or iOS target has been specified and we're compiling for armv7, go ahead as assume we're targeting iOS. rdar://10147774
    • 39834ba : PR11002: Make sure we emit sentinel warnings with a valid source location. (Ideally, we want to use the location returned by getLocForEndOfToken, but that is not always successful.)
    • d2ee809 : Include prefix with default synthesized ivars.
    • 8987b23 : Only print _Bool as 'bool' when 'bool' is defined as an object-like macro whose only replacement token is '_Bool'.
    • ed73b10 : Remove the egregious hack that made Objective-C++ ARC work with older versions of libc++. Newer versions of libc++ know how to deal with ARC properly. Fixes rdar://problem/10062179.
    • 30c4240 : When 'bool' is not a built-in type but is defined as a macro, print 'bool' rather than '_Bool' within types, to make things a bit more readable. Fixes rdar://problem/10063263.
    • 3240fe3 : objcetive-c-arc: When overriding a method, its ns_consumed patameter attribute must match its overriden method. Same also for ns_returns_retained/not_retained on the result type. This is one half of // rdar://10187884
    • 7e5f112 : Fix a crash in MallocOverflowSecurityChecker. Patch by Lei Zhang.
    • 5adcec1 : Check for GCC paths that have the target triple in them. This is required for a lot of cross-compile toolchains. Also add some slightly better support for -B.
    • c1c0dfb : Get rid of useless helper Sema::CastCategory.
    • 1456fec : If you download clang and delete the test directory, you can end up with the copy line failing with an error, yet the make will complete successfully. From Greg Clayton!
    • 578faa8 : de-tmpify clang.
    • 6479c66 : [analyzer] Remove target triple from the malloc overflow test.
    • 2fe3636 : Some changes to improve compatibility for MSVC-style C++ struct layout. Patch from r4start at gmail.com (with some minor modifications by me).
    • fb2a0c5 : Document the incompatibility that stems from Clang properly implement the rule that defines the implicit copy constructor/implicit copy asssignment operator as deleted when a move constructor or move assignment operator has been explicitly declared. This has hit a number of people because Boost 1.47.0's shared_ptr fails to declare a copy constructor.
    • 8ed3ade : Move test, so it actually tests what it is supposed to (given that we don't have an AST verifier).
    • d3c1661 : Fix examples for r140478. PR11021.
    • 5f0bfc5 : [libclang] Expose array size and element type, patch by Vinay Sajip!
    • 620b933 : Constant evaluation for pointer CXXScalarValueInitExpr
    • 6b4ff04 : Introduce a callback to PPCallbacks for lines skipped by the preprocessor.
    • b201e16 : Break SourceManager::translateFileLineCol into translateFile, no functionality change.
    • 17c8c84 : When parsing a character literal, extract the characters from the buffer as an 'unsigned char', so that integer promotion doesn't sign-extend character values 127 into oblivion. Fixes rdar://problem/10188919.
    • c737acb : Revert r139989 and r140031, which implemented the Objective-C type system change in rdar://problem/10109725 that allows conversion from 'self' in class methods to the root of the class's hierarchy. This conversion rule is a hack that has non-trivial repurcussions (particularly with overload resolution).
    • 7f9b58b : Let -B work for ld paths on Linux.
    • 2246368 : Revert r140589. It was causing failures during llvm compilation:
    • fa865df : MSVC is stuck in the 80s.
    • f39d962 : Renaming PathDiagnosticClients.h to PathDiagnosticConsumers.h (issue 5397)
    • 104be6f : PR11009: Fix a FIXME which was leading to an assertion failure with rvalue references.
    • 93476dd : Add typo correction for the type name in C++ "new" statements
    • 671436e : [libclang] Refactor the important stuff in clang_getCursor into a cxcursor::getCursor(CXTranslationUnit, SourceLocation) function.
    • b0d6eaa : [libclang] Introduce clang_Cursor_isNull and clang_Cursor_getTranslationUnit functions.
    • a929ec7 : objc - don't complain about unimplemented property when conforming protocol declares the property, as well as one of its superclasses. Property will be implemented in the super class. // rdar://10120691
    • 615eb7c : Fix regression of -Warray-bounds involving varargs functions [PR 11007].
    • eabdd67 : Add a comment in ASTReader::ReadPragmaDiagnosticMappings that the user bit is set by the setDiagnosticMapping call.
    • 2aac0c9 : objc - compare setter/property types using hasSameUnqualifiedType in //rdar://10156674
    • 02fa1b9 : Move string literal to bool conversion into its own warning flag -Wstring-conversion.
    • 936b779 : objc - in matching setter argument type to its property type, ingore the type qualifiers. // rdar://10156674
    • a6b3380 : objc-arc: mark functions which return types which can't be dealt with in arc mode and are in system headers as unavailable. // rdar://10186625
    • 9f36062 : Make necessary changes in AddMIPSTargetArgs for targeting Mips64. Enable use of -mcpu.
    • 8a5d929 : CheckStringInit has side effects; make sure we don't run it in VerifyOnly mode, at least for the moment. rdar://problem/10185490.
    • 65ab907 : [libclang] Report implicit objc methods for properties when indexing.
    • a4e20e1 : Fix a typo in the new VerifyOnly handling in SemaInit. No visible difference at the moment, as far as I can tell.
    • 8f94449 : Add a small note to BaseSubobject about where it is actually used.
    • 19aa860 : Fix assertion hit when @encoding C++ classes. rdar://10172840 & http://llvm.org/PR10990
    • 64b0cee : Add back support for a manually formatted section of the diagnostic message. Specifically, we now only line-wrap the first line of te diagnostic message and assume the remainder is manually formatted. While adding it back, simplify the logic for doing this.
    • 43202ae : Update comments.
    • f9aac38 : Fix comment to reflect reality.
    • a48e676 : Re-arrange and bitfieldify data members of CXXConstructExpr to save a little storage.
    • 480b53c : Diagnose attempts to use 'using typename' with a non-identifier name, from Stepan Dyatkovskiy. Fixes PR10925.
    • e6d1dff : Hoist and beef up the asserts about the level of infrastructure expected when working with a diagnostic attached to a source location. Also comment more thoroughly why its important to handle non-location diagnostic messages separately.
    • 0ef8988 : Switch the emission of diagnostics without a source location to a dedicated path. The logic for such diagnostics is much simpler than for others.
    • 75c1bef : Extract the actual printing of the message string into a helper function. Doing this conveniently requires moving the word wrapping to use a StringRef which seems generally an improvement. There is a lot that could be simplified in the word wrapping by using StringRef that I haven't looked at yet...
    • 8dcdde1 : Group the helpers for word wrapping with the primary routine. No functionality changed.
    • 56e0311 : Add a test for the display of diagnostic options and categories. This would have caught a bug I introduced during refactoring. Silly me thinking this was all well tested already...
    • fb3612e : Associate the macro arguments location map with a FileID instead of a ContentCache, since multiple FileIDs can have the same ContentCache but the expanded macro arguments locations will be different.
    • 527f98d : Remove SourceManager::getLocation().
    • ee0f84f : Don't map a file:line:col triplet that is inside the preamble range to a "loaded" location of the precompiled preamble.
    • 7e7b503 : Properly initialize Preprocessor::CurLexerKind to avoid use of uninitialized variable.
    • 9043712 : Turns out we tested for this typo.
    • aef0589 : Add missing spaces in diagnostic messages.
    • a65cb0c : Don't print a stray ] at the end of diagnostics.
    • 2401846 : Move VTable builder to AST
    • ab172b5 : Have CodeGenVTables::GenerateConstructionVTable use VTableLayout
    • 9984d12 : Move vtable dumper call to VTableBuilder ctor
    • e00fe69 : Implement VTableContext::createConstructionVTableLayout
    • e09cdf4 : Move all vtable layout data into new VTableLayout class
    • ba6ffeb : Move VTableComponent to header file
    • 84fcc48 : Move vtable component accessors to VTableContext
    • bf1c5ae : Remove CodeGenVTables::ComputeVTableRelatedInformation dependency on CodeGen
    • 1d2b317 : Create a VTableContext class and start moving CodeGenVTables methods to it
    • 5c551f7 : Move VTT builder to AST
    • 33446f1 : Move BaseSubobject class to AST
    • 4c341ac : Remove CodeGenModule field from VTTBuilder
    • e2ff5ab : Make the VTTBuilder class independent of LLVM core
    • 3a21809 : Remove support for splitting word-wrapped diagnostic messages on newline characters. I could find no newline character in a diagnostic message, and adding an assert to this code never fires in the testsuite.
    • 45b19de : Move the word wrapped printing routine down to all the other helper printing routines, clean up its doxyments and switch it to a camelCase name as well. No functionality changed here.
    • a3ba6bb : Switch some of my recently added helper functions to use the proper style, and add doxyments.
    • 253d41d : Rewrite the printing of diagnostic options, categories, etc to actually use the ostream interface and avoid lots of temporary strings.
    • 40847cf : Rename DiagnosticInfo to Diagnostic as per issue 5397
    • ef3643f : Rename PathDiagnosticClient to PathDiagnosticConsumer as per issue 5397
    • c3516af : Delete an extraneous line I missed.
    • 53a529e : A direct extraction of the rest of the option printing into a helper. This needs to be cleaned up to better use the ostream object, WIP.
    • 621bc69 : Rename VerifyDiagnosticsClient to VerifyDiagnosticConsumer as per issue 5397
    • 7614578 : Start a more correct pattern for factoring out the name printing. Slowly I'm planning to switch a bunch of these over to use a raw_ostream instead of += on a string object.
    • a629004 : Revert r140484. That was *not* ready to be committed! Only halfway done, and completely broken at that.
    • 534ed20 : Fix a formatting goof.
    • 4e85b8a : Rename ChainedDiagnosticClient to ChainedDiagnosticConsumer as per issue 5397
    • 89645ba : Extract the diagnostic message formatting into a helper routine.
    • 26e7a90 : Rename StoredDiagnosticClient to StoredDiagnosticConsumer as per issue 5397
    • aee37ba : Rename CaptureDiagnosticClient to CaptureDiagnosticConsumer as per issue 5397
    • 99c4e5b : Extract the logic for printing a colorful level name into a helper function.
    • f40c0ac : Rename IgnoringDiagClient to IgnoringDiagConsumer as per issue 5397
    • 78ad0b9 : Rename DiagnosticClient to DiagnosticConsumer as per issue 5397
    • d6471f7 : Rename Diagnostic to DiagnosticsEngine as per issue 5397
    • 026cb76 : Inline this method now that its completely trivial, and prepare for hoisting parts of the text diagnostic.
    • 18fc002 : Shuffle some names around. 'CaretDiagnostic' is inaccurate as this needs to handle non-caret diagnostics as well in order to be fully useful in libclang etc. Also sketch out some more of my plans on this refactoring.
    • 8be5c15 : Actually remove the members of CaretDiagnostic no longer in use for tracking the start and stop of macro expansion suppression. Also remove the Columns variable which was just a convenience variable based on DiagOpts. Instead we materialize it in the one piece of code that cared.
    • b9c398b : Sink the logic for suppressing some macro expansion notes from the TextDiagnosticPrinter into the CaretDiagnostic class. Several interesting results from this:
    • a02a8a9 : Split the recursive macro expansion walk out from the routine which emits a source snippet and caret line.
    • a41ee49 : Add a missing increment to avoid infinite looping in the regression test.
    • e003cfc : Update CMake build.
    • fd2a00a : Add a special note for overload resolution when an initializer list argument cannot be converted. This is in preparation for overload resolution of initializer lists. Currently, you will always get this message when you try to pass an init list to an overloaded function.
    • 6df6548 : Correctly parse braced member initializers (even in delayed parsing) and correctly pass the information on to Sema. There's still an incorrectness in the way template instantiation works now, but that is due to a far larger underlying representational problem. Also add a test case for various list initialization cases of scalars, which test this commit as well as the previous one.
    • cea8d96 : Treat list-initialization of scalars as a first-class citizen in C++11. Allow empty initializer lists for scalars, which mean value-initialization. Constant evaluation for single-element and empty initializer lists for scalars. Codegen for empty initializer lists for scalars. Test case comes in next commit.
    • 3117e36 : Fix the expected error for narrowing conversions in generalized-initializers.cpp to match what the actual implementation of the error looks like.
    • 14b0c19 : Give InitListChecker a verification-only mode, where it neither emits diagnostics nor builds a semantic (structured) initializer list, just reports on whether it can match the given list to the target type. Use this mode for doing init list checking in the initial step of initialization, which will eventually allow us to do overload resolution based on the outcome.
    • 8713d4e : In Initialization, add step kind SK_ListConstructorCall (list-initialization resolves to a constructor call in C++11) and failure kind FK_ListInitializationFailed (early InitListChecker run failed).
    • b0edea9 : Inline Sema::CheckInitList into its only user.
    • 5d3d41d : Fix typos and non-doxygen-ness in a few comments.
    • fce1a3a : [microsoft] In Microsoft mode, if we are inside a template class member function and we can't resolve an identifier then assume the identifier is type dependent. The goal is to postpone name lookup to instantiation time to be able to search into type dependent base classes.
    • d25be9f : Fix comment typo.
    • a4b984d : objc - redeclaration of property in extension class must match property type declaration in its primary class. // rdar://10142679
    • 10efbaf : Don't translate CRLF files into LF files. Fixes PR6870, from Aaron Ballman!
    • 51be75e : Driver: Use sys::Process::SetWorkingDirectory, for consistency.
    • bc2b91a : objc - fixes a crash when undefined typed property followed by it implementation crashes when attempt is made to access the synthesized ivar. // rdar://10177744
    • 1090452 : Fix a crash-on-invalid.
    • df22655 : Fix up assertion a bit more
    • 5cca4eb : Driver: Explicitly include unistd.h, libstdc++'s map pulls it in, libc++ doesn't.
    • 4f16342 : Add DiagGroups to a couple of warnings.
    • 0c479e5 : Driver: Test case that was supposed to go with previous commit.
    • 63bc59b : Driver: Add a --working-directory option which can be used to cause the compiler to operate "as if" in a certain working directory. - For now, we just implement this by changing the actual working directory, but eventually we would want to handle this transparently. This is useful to avoid an extra exec() pair in some situations, and will be something we would want to support for more flexibility in using the Clang libraries.
    • 710e0c4 : Add a test triple. Who knew that all the world wasn't darwin?
    • eb2d1f1 : Removing a bunch of dead returns/breaks after llvm_unreachables.
    • c193dd8 : Don't propagate the 'availability' attribute through declaration merging for overrides. One might want to make a method's availability in a superclass different from that of its subclass. Fixes rdar://problem/10166223.
    • f1f8b1a : Add a new warning to -Wliteral-conversion to catch cases where a string literal is cast to a boolean. An exception has been made for string literals in logical expressions to allow the common case of use in assert statements.
    • 13d05ac : Clean up parsing the category names in interfaces slightly, using MatchRHSPunctuation appropriately and giving a useful source location for the complaint about attributes being added to a category.
    • 1e705d5 : Move immutable map canonization out of the removeDeadBindings loop (via using ImmutableMapRef). Gives ~2% speedup.
    • a120d01 : When checking for weak vtables, check whether the actual definition of the key function is inline, rather than the original declaration. Perhaps FunctionDecl::isInlined() is poorly named. Fixes rdar://problem/9979458.
    • e3f8349 : objc-gc: Fix a corner case where clang fails to generate GC write barrier with captured pointer to object. // rdar://10150823
    • 966a8a5 : Fix up comment now that 'new' is no longer a virt-specifier, from Aaron Ballman
    • 61e813c : Eliminate an MSVC comparison warning, from Aaron Ballman
    • 901a9a4 : Fix wrong comment about reentering template scope for -fdelayed-template-parsing.
    • 548f6c8 : More missing header inclusions from llvm_unreachable migration.
    • 9fe8c74 : Fix missing includes for llvm_unreachable
    • b219cfc : Switch assert(0/false) llvm_unreachable.
    • c535d97 : Reenable -cxx-isystem for Objective C++, until I come up with a better solution
    • d01fb36 : unittests/Basic/FileManagerTest.cpp: Suppress warnings on gcc.
    • d41f3d8 : CMake: Define ${LLVM_TABLEGEN_EXE} with explicit ${CMAKE_EXECUTABLE_SUFFIX} on standalone build. Or build might fail with NMake.
    • d836c0d : Don't finalize checking of base and member initializers for a constructor template. Fixes PR10457.
    • fdde470 : [microsoft] Fix a bug in -fdelayed-template-parsing mode where we were not reentering the delayed function context correctly. The problem was that all template params were reintroduced inside the same scope. So if we had a situation where we had 2 template params with the same name at different scope then clang would generate an error about ambiguous name.
    • a3e86ed : Don't test unix path seperators, that will fail on windows.
    • 4586347 : See if going through env pacifies the windows buildbots.
    • 47adebe : Add support for CPATH and friends.
    • 4cd0634 : Do manual binary search for preprocessing entities because their end locations may be unordered and MSVC's debug-mode doesn't like it.
    • 8990daf : Don't remove filters.
    • 690b2db : Only trigger the initialize-an-array-via-elementwise-copy/move code generation when we're dealing with an implicitly-defined copy or move constructor. And, actually set the implicitly-defined bit for implicitly-defined constructors and destructors. Should fix self-host.
    • 71a7605 : Don't use TemplateArgumentListInfo inside AST nodes because it may leak. Use ASTTemplateArgumentListInfo instead.
    • b0c3e09 : Rename ExplicitTemplateArgumentList - ASTTemplateArgumentListInfo, no functionality change.
    • d010982 : Place diagnostic warn_ivar_use_hidden under the flag -Wshadow-ivar.
    • 5f62571 : ST-scanReachableSymbols() is creating a SubRegionMap (SRM) on every call since one SRM is created in each ScanReachableSymbols instance. Creating the object just once and calling only scan inside the loop gives ~ 14% speed up of the StaticAnalyzer run (Release+Asserts).
    • d8e0fe6 : PTX: Clean up target options code
    • 3340e27 : Fix the ASTImporter's lookup for anonymous structs/unions that get a linkage name via typedef. Patch from/fixes PR10958.
    • af13082 : Don't allow template argument deduction to deduce a placeholder type, ever. Fixes PR10939.
    • b681fb1 : Explicitly-defaulted copy/move constructors are not "implicit", but they still need the logic to cope with array member initialization. Fixes PR10720.
    • 9df05ea : In OpenCL, conversions between different vector types are disallowed
    • 77b6de0 : ArrayRef-ifying the fields passed to Sema::ActOnFields
    • a71f9d0 : ArrayRef-ifying the UnexpandedParameterPacks passed to Sema::CheckParameterPacksForExpansion
    • d7bb6a0 : ArrayRef-ifying MacroArgs::create's arguments argument.
    • 681d83d : Simplify the last character check.
    • 37c31c2 : In the OpenCL mode, the AltiVec mode must be off and checks must be strict
    • 4278c65 : ArrayRef-ifying Function/BlockDecl's setParams
    • 196e71e : More MSVC9 unbreaking.
    • f250365 : Diagnose attempts to write a templated data member, from Stepan Dyatkovskiy! Fixes PR10896.
    • ca82a82 : Enforce access control for conversion operators used in contextual conversions (rather than just call-arguments).
    • a8a16d5 : I had meant to locally revert this test.
    • 01f151e : ANSI C requires that a call to an unprototyped function type succeed if the definition has a non-variadic prototype with compatible parameters. Therefore, the default rule for such calls must be to use a non-variadic convention. Achieve this by casting the callee to the function type with which it is required to be compatible, unless the target specifically opts out and insists that unprototyped calls should use the variadic rules. The only case of that I'm aware of is the x86-64 convention, which passes arguments the same way in both cases but also sets a small amount of extra information; here we seek to maintain compatibility with GCC, which does set this when calling an unprototyped function.
    • 036277e : [microsoft] Move missing typename warning from -fms-extensions to -fms-compatibility. Also allow the missing typename warning at function scope.
    • 88df125 : Fix MSVC9 build by providing a full comparator object to lower_bound.
    • 47456fa : Change:
    • 243f108 : Change "ivar" to true for a boolean function argument. Since string literals are cast to true, this should no effect on behavior.
    • 7ec0258 : Add case labels for Mips64 architectures.
    • 09ca9ef : [analyzer] Fix a bug where PathDiagnosticLocation did not generate a valid range and add asserts to check validity of locations early on. Ignore invalid ranges in PathDiagnosticPiece (they could be added by checker writers).
    • 5b76f37 : [ARC] Allow forming 'id*' in an unevaluated context. Fixes rdar://10148540.
    • 8f958f1 : [PCH] Don't store the source range for each preprocessed entity since we already have the range in the PPEntityOffsets array.
    • 290ad8c : [PCH] Merge ASTReader::LoadPreprocessedEntity with ReadPreprocessedEntity and don't store the ID for each preprocessed entity.
    • 2502efd : [libclang] When pointing at a macro expansion inside a macro argument, return a cursor for the inner macro.
    • ef70724 : [analyzer] Refactor PathDiagnosticLocation: Remove SourceRange member from PathDiagnosticLocation - FullSourceLoc Loc and PathDiagnosticRange Range are sufficient.
    • c20f399 : [analyzer] Refactor PathDiagnosticLocation: Add comments. Remove the last constructor which could allow invalid locations to slip in.
    • bc0a301 : [analyzer] Remove dead code. (This code is trying to implement the idea that PathDiagnosticClient could implement DiagnosticClient and has been dead for a while).
    • 5e5e95d : In SourceManager::translateLineCol, handle the case where we are pointing directly at the end of the source file.
    • 5555bf7 : Remove PreprocessingDirectiveKind since it's not necessary.
    • de4e0a8 : The location of the name in MacroDefinition is the beginning of its range, don't store an extra location for it.
    • cc6306e : Move Microsoft access specifier bug emulation from -fms-extensions to -fm-compatibility.
    • 8aa76ea : For i386 kext fallback to llvm-gcc, search paths for several Darwin versions.
    • 590dd8e : [analyzer] Refactor PathDiagnosticLocation: Make PathDiagnosticLocation(SourceLocation...) private. Most of the effort here goes to making BugReport refer to a PathDiagnosticLocation instead of FullSourceLocation.
    • 77ce46d : [analyzer] Refactor PathDiagnosticLocation: Use the pre-computed Range and Location for profile.
    • 61ab80a : [driver] Default to arm mode when using the integrated assembler. rdar://10125227
    • c11030e : Fix a problem in digraph handling where "[:" might be treated as "::" and erronously trigger the digraph correction fix-it. Include a new test to catch this in the future.
    • bf5851a : Define Mips64 TargetInfo classes.
    • 9503dce : Sort exports list.
    • b6a37b3 : Clean up TargetInfo class hierarchy. Define a base class from which TargetInfos of Mips32 big and little endian derive.
    • 8c6dfbe : Create a MipsTargetCodeGenInfo object for mips64/mips64el. The size of the UnwindException structure is 32 for mips64.
    • b66f486 : [analyzer] Refactor PathDiagnosticLocation: Use PointerUnion of LocationContext and AnalysisContext to support creation of PathDiagnosticLocations for checkers which no context sensitivity.
    • e624fa0 : Add a parameter to MipsTargetCodeGenInfo's constructor.
    • f7572a6 : Introduce an egregious hack for modules to cope with headers that come from unfriendly (== not at all modularized) directories. This is temporary, and it only affects module construction until I'll figured out how to deal with system headers.
    • 47fcd29 : Remove __WCHAR_UNSIGNED__ and anything that used it.
    • 9859ea0 : Test commit
    • e974367 : [analyzer] Refactor PathDiagnosticLocation: Lazily query LocationContext for a ParentMap as needed.
    • 2380337 : [analyzer] Remove LocationContext and a dependency from PathDiagnosticLoaction.
    • 68018db : Clarify PNaCl target characteristics: set LongDoubleWidth, PtrDiffType, IntPtrType, change __builtin_va_list to from a structure to int[4] (same alignment and size, but with a simpler representation). Patch by David Meyer!
    • 8be0c74 : Remove redundant break statements, and replace asserts with llvm_unreachable
    • 9d8c2b6 : Fix a crash-on-invalid with bad CV-qualification on 'this' in the presence of an implicit move assignment operator. I think the implicit copy assignment operator case was also wrong, but just in a "displaying the wrong diagnostic" way.
    • 3f224b2 : Fix a pretty nasty bug in noreturn destructors that cascaded into lots of false positive warnings that depend on noreturn destructors pruning the CFGs, but only in C++0x mode!
    • b490c4b : [analyzer] Refactor PathDiagnosticLocation: Pre-compute Range and Location with gen methods on object creation instead of computing on demand. This would allow to remove dependency on the other members which help with construction and might not even be valid at later stages (to be removed later on).
    • 1531bb0 : [analyzer] Use more create methods in the PathDiagnostic, cleanup.
    • eecb6a1 : Don't assume that the clause is a GlobalVariable. It could be a constant.
    • 4522e2a : [analyzer] BugReport has a profile method, so reuse it here.
    • cf8742e : [analyzer] Add a convinience method.
    • a2d7e65 : [analyzer] Constify a method.
    • 0c706c2 : Add list initialization for complex numbers in C. Essentially, this allows "_Complex float x = {1.0f, 2.0f};". See changes to docs/LanguageExtensions.html for a longer description.
    • 40ccacc : The eh.selector intrinsic isn't used anymore. Replace the check here with a check for the landingpad instruction instead. This check looks at each of the clauses in the landingpad instruction. If it's a catch clause, it compares the name directly with the global. If it's a filter clause, it has to look through each value in the filer to see if any have the prefix.
    • 0e322ff : Fix gcc build.
    • 8c25fc5 : OpenCL: introduce support for function scope __local variables
    • a68c4af : [PCH] The range map for SLoc offsets is a reversed one, not negated.
    • 92ddef1 : In libclang, when visiting preprocessed entities in a source range, use PreprocessingRecord's getPreprocessedEntitiesInRange.
    • b6441ef : Introduce local_begin()/local_end() methods in PreprocessingRecord which return iterators for local, non-loaded, preprocessed entities.
    • 5a9ee20 : In CodeGenAction::ExecuteAction() use SourceManager::translateFileLineCol() instead of getLocation() since we don't care about expanded macro arguments.
    • 507097e : [libclang] When getting a source location from a file:line:col triplet check whether the requested location points inside the precompiled preamble, in which case the returned source location will be a "loaded" one.
    • efa2ff8 : Break SourceManager::translateFileLineCol into translateLineCol that returns the source location of line:col of a specific FileID.
    • 2dbaca7 : Introduce PreprocessingRecord::getPreprocessedEntitiesInRange() which will do a binary search and return a pair of iterators for preprocessed entities in the given source range.
    • a64ccef : Rename SourceLocation::getFileLocWithOffset - getLocWithOffset.
    • 5a43748 : Make ASTReader/ASTWriter friends of SourceLocation. They already depend on internal knowledge of SourceLocation.
    • aa6edae : Introduce isLoadedSourceLocation() and isLocalSourceLocation() methods in SourceManager.
    • 1f6d225 : Const-ify some methods in ASTReader.
    • 5040247 : For SourceManager::isBeforeInTranslationUnit, a location pointing inside a macro argument should be regarded as coming before the location of the expanded tokens.
    • ac1ffcc : [PCH] Preload the PreloadSLocEntries through the SourceManager and don't call ReadSLocEntryRecord() directly because the entry may have already been loaded in which case calling ReadSLocEntryRecord() directly would trigger an assertion in SourceManager.
    • 4d1cbcf : For SourceManager::isBeforeInTranslationUnit, when one location points at the inclusion/expansion point of the other, regard this as coming before the other.
    • 285cfd8 : Throw the switch to convert clang to the new exception handling model!
    • 950be71 : Changes to the name lookup have caused a regression in the digraph fix-it hint. For instance:
    • 8c6f9c4 : Tighten check to match an ivar with corresponding property by using ObjCImplementationDecl. Radar 10139522 - Part 1.
    • 6e52183 : Fix a QoI bug with overloaded operators inside macros.
    • 71ac1e0 : objc - some refactoring of my last 'self' patch.
    • 5584d91 : In apple-kext mode, use external linkage for explicit template instantiations instead of internal linkage.
    • 84e0ccf : CurContext cannot be null ever.
    • 24dd9ad : Removed an unused field and its accessors methods.
    • b81d301 : First test commit.
    • a495066 : In constructors, don't generate implicit initializers for members of anonymous structs contained within anonymous unions.
    • 9aca87d : Remove function which is unused as of r139996. Thanks to David Blaikie for bringing this to my attention.
    • 9850ae1 : Do not use builtin includes if -fms-compatibility is specified. Some MSVC header files have the same name as clang's builtins, this creates clash.
    • 8b3c99e : Move the "jump bypasses variable initialization" error - warning downgrade from -fms-extensions to -fms-compatibility.
    • 1c98d62 : In Microsoft mode(-fms-compatibility), prefer an integral conversion to a floating-to-integral conversion if the integral conversion is between types of the same size.
    • 416f63e : PR10304: Do not call destructors for data members from union destructors. Prior to C++11, this has no effect since any such destructors must be trivial, and in C++11 such destructors must not be called.
    • c115f63 : PR10954: variant members should not be implicitly initialized in constructors if no mem-initializer is specified for them, unless an in-class initializer is specified.
    • 16ee819 : Fix PR10531. Attach an initializer to anonymous unions, since the default constructor might not be trivial (if there is an in-class initializer for some member) and might be deleted.
    • de5998f : Let -Warray-bounds handle casted array types without false positives.
    • 1d4e8e9 : objc - Treat type of 'self' in class methods as root of class of this method. // rdar://10109725
    • 898f284 : objc: Don't crash with decl context for property impl. is missing. // rdar//10127639
    • 62ec1f2 : Rename LangOptions::Microsoft to LangOptions::MicrosoftExt to make it clear that this flag must be used only for Microsoft extensions and not emulation; to avoid confusion with the new LangOptions::MicrosoftMode flag.
    • 8f8d581 : When we load header file information from the external source (i.e., the AST reader), merge that header file information with whatever header file information we already have. Otherwise, we might forget something we already knew (e.g., that the header was #import'd already).
    • ae55608 : As per discussion with Doug Gregor on the IRC channel, introduce a new compiler switch: -fms-compatility.
    • 9bdbec1 : Pass -fmodule-cache-path along to -cc1 properly
    • 61c5e34 : With modules, we can end up loading a new module after we've seen an arbitrary amount of code. This forces us to stage the AST writer more strictly, ensuring that we don't assign a declaration ID to a declaration until after we're certain that no more modules will get loaded.
    • 2e96511 : In Microsoft mode, warn if an indirect goto jump over a variable initialization. Also add a test case for the non Microsoft case because such test didn't exist.
    • 87aa125 : Fix massive LiveVariables regression (due to LiveVariables rewrite) by addressing two performance problems:
    • 733a83b : Fix search paths for Ubuntu 11.04 x86. Patch by Stepan Dyatkovskiy.
    • 0cd5948 : [analyzer] Refactor: make PathDiagnosticLocation responsible for validation of SourceLocations (commit 5 of ?): - Get rid of PathDiagnosticLocation(SourceRange r,..) constructor by providing a bunch of create methods. - The PathDiagnosticLocation(SourceLocation L,..), which is used by crate methods, will eventually become private. - Test difference is in the case when the report starts at the beginning of the function. We used to represent that point as a range of the very first token in the first statement. Now, it's just a single location representing the first character of the first statement.
    • b5f8f07 : test/CodeGen/sse-builtins.c: Make this host-independent to unbreak posix-unlike hosts.
    • 481037f : Moves calls of checkArithmeticNull() from CreateBuiltinBinOp() into the individual Check*Operands() functions.
    • 1748b12 : Thread safety: Adding FIXMEs and a couple cleanups
    • 0fd787b : Tweak the module auto-import heuristics a bit
    • c3ba24f : Remove no longer needed LHSType and RHSType from checkArithmeticNull()
    • 5e3a235 : Change checkArithmeticNull() to use a NonNullType, instead of checking both the LHSType and RHSType for everything.
    • e5326fa : Remove standard library includes from test; they explode on Windows.
    • 7c06f6b : Tweak *mmintrin.h so that they don't make any bad assumptions about alignment (which probably has little effect in practice, but better to get it right). Make the load in _mm_loadh_pi and _mm_loadl_pi a single LLVM IR instruction to make optimizing easier for CodeGen.
    • fba18aa : Add an experimental flag -fauto-module-import that automatically turns #include or #import direcctives of framework headers into module imports of the corresponding framework module.
    • dd22509 : Finish the lex-LHS and rex-RHS cleanup in Sema.
    • 1f87cf4 : Add test case for mutually recursive modules
    • b2d39c2 : Comment what's going on when we compile a module
    • 412a496 : reverse patch in r139818 to focus on 'self' instead of 'Class'.
    • 4ebd45f : Detect cyclic module dependencies in a manner that is rather more graceful than running out of stack space.
    • f2b4e66 : [analyzer] Refactor: make PathDiagnosticLocation responsible for validation of SourceLocations (commit 4 of ?): - The closing brace is always a single location, not a range. - The test case previously had a location key 57:1 followed by a range [57:1 - 57:1].
    • 7489889 : Eliminate the list of modules from the preprocessor options. This was used back when we had an -import-module command-line option, but it's no longer used (or useful).
    • 531dcce : Eliminate the unused -create-module cc1-level option
    • ae27059 : Refactor the load of the exception pointer and the exception selector from their storage slot into helper functions.
    • 4fdf97b : [analyzer] Refactor: make PathDiagnosticLocation responsible for validation of SourceLocations (commit 2 of ?): - Fix a fixme and move the logic of creating a PathDiagnosticLocation corresponding to a ProgramPoint into a PathDiagnosticLocation constructor. - Rename PathDiagnosticLocation::create to differentiate from the added constructor.
    • 1a995dd : When we load the first module, make sure that we wire up the ASTConsumer to the newly-created ASTReader. This makes sure that CodeGen sees the declarations it is interested in
    • 7d7ef82 : Objective-c: Conversion from type Class to any root class type is allowed in class methods with no warning. //rdar://10109725
    • 74558b4 : Thread safety: changing naming in error messages based on reviewer comments
    • 988b5ae : Thread safety: test cases originally from gcc annotalysis branch. We are relicensing them under the license for llvm.
    • e24692b : [PCH] Overhaul how preprocessed entities are [de]serialized.
    • 69f5d14 : Thread safety: cleaning up FIXME for trylocks
    • cb96751 : Thread safety: completeing the implementation of shared/exclusive locks required attributes
    • 4e4bc75 : Thread safety: refactoring various out of scope warnings to use the same inteface. This eliminates a lot of unnecessary duplicated code.
    • 0f50b08 : Teach LangOptions::resetNonModularOptions to actually do what it says it does
    • 808ef66 : PTX: Define target options
    • 1970567 : Rewrite this loop to use partial destruction; I'm not sure it's possible for that to matter right now, but eventually I think we'll need to unify this better, and then it might. Also, use a more efficient looping structure.
    • 3460c0c : Sorry, that assertion actually already exists.
    • 082aade : We don't generate null initializer expressions anymore, and we don't need to.
    • 220ac8c : [analyzer] Refactor: make PathDiagnosticLocation responsible for validation of SourceLocations (commit 2 of ?): - Modify all PathDiagnosticLocation constructors that take Stmt to also requre LocationContext. - Add a constructor which should be used in case there is no valid statement/location (it will grab the location of the enclosing function).
    • f60dca3 : Emit debug info for c++0x nullptr.
    • de8a905 : Make -E work with module imports
    • ce835df : Don't try to write a macro offset for an identifier that names a non-exported macro, for real this time
    • 5ed6277 : Revert my exported-macro hackery. Something is amiss
    • b50dd47 : Thread safety: small fixes in comments
    • ec42f5d : Make sure that we actually keep the key length and data length in sync when dealing with non-exported macros
    • e038cf0 : Disable this test on win32. My "sleep 2" trick didn't seem to work
    • 0c129af : Don't try to write a macro offset for an identifier that names a non-exported macro
    • e2978e3 : Add test for the driver's handling of modules
    • 8ee51ef : Teach the driver to always pass down a module cache path. If none is supplied, use something derived from the system's temporary directory. Depends on LLVM r139725.
    • df8327c : Thread safety: reverting to use separate warning for requirement to hold any lock
    • 1990346 : Thread safety: adding additional documentation to the main thread safety interface, and making the destructor for the thread safety handler pure virtual
    • 194418f : Thread safety: adding test cases for unparseable lock expressions and expanding the handling of these expressions
    • 7c24334 : Plug an abstraction leak and fix a crasher in DiagnoseInvalidRedeclaration
    • f45b357 : PR10864: make sure we correctly delay type-checking for inline asm tied operands with dependent type. Patch by Likai Liu.
    • 297b20a : Use a group for a diagnostics I added late.
    • 4532b55 : [arcmt] Use __bridge_retained when passing an objc object to a CF parameter annotated with cf_consumed attribute.
    • 528a499 : objc-arc: warn when a 'retain' block property is declared which does not force a 'copy' of the block literal object. // rdar://9829425
    • 33e8491 : [analyzer] Remove redundant copy constructor.
    • 4d353eb : [analyzer] After CFG has been linearized, we can have a situation where an ExpoledNode has an invalid SourceLocation (which has no correspondence in the source code). This commit is the first step to solve this problem. - It adds LocationContext to the PathDiagnosticLocation object and uses it to lookup the enclosing statement with a valid location. - So far, the LocationContext is only available when the object is constructed from the ExplodedNode. - Already found some subtle bugs(in plist-output-alternate.m) where the intermediate diagnostic steps were not previously shown.
    • ab9b154 : Add comment.
    • 815759c : Encode the module hash in base-36, to reduce the length of the strings a bit
    • 2121cda : Formatting.
    • 5c22ad2 : Fix comment.
    • 815eb6b : [driver] Add support for the COMPILER_PATH environment variable, which adds the specified path(s) to the list of prefix directories. rdar://10097714
    • 43f48b0 : [analyzer] Refactor: Make PathDiagnosticLocation responsible for creating a valid object given an ExploadedNode (the same logic can be reused by other checkers).
    • edc9592 : Fix typo.
    • 76d991e : Assert that the module hash produced after stripping away non-modular options is the same as the module hash before stripping those options.
    • 6e975c4 : For modules, use a hash of the compiler version, language options, and target triple to separate modules built under different conditions. The hash is used to create a subdirectory in the module cache path where other invocations of the compiler (with the same version, language options, etc.) can find the precompiled modules.
    • 7ea51d5 : [libclang] Remove libclang.darwin.exports, it's not used anymore.
    • e8683d6 : In general, don't look through explicit casts when trying to find the called declaration. Explicit casts can radically change the semantics of a call, and it's no longer really a builtin call any more than it would be a builtin call if you stored the function pointer into a variable and called that.
    • a45680b : Correctly generate IR for casted "builtin" functions, where the builtin is really just a predefined declaration. These are totally valid to cast.
    • 36f37b6 : O64 will not be supported.
    • 1d19edc : mips*-*-psp is no longer supported as a target.
    • 5d35aa0 : Split the two invalid uses of the unqualified Foobar at line 3 to two lines so that it is clearer which use triggered which error.
    • eb43f4a : Re-commit r139643.
    • a179b53 : Revert r139643 while I look into it; it's breaking selfhost.
    • e6be34d : [libclang] Introduce clang_getPresumedLocation which works like clang_getExpansionLocation but takes into account #line directives coming from preprocessed files.
    • 144b38a : [PCH] Fix a regression that r139441 introduced (decls were getting passed to the consumer without being fully deserialized).
    • 93013b2 : Make clang use Acquire loads and Release stores where necessary.
    • de24d44 : Turn off the generation of unaligned atomic load/store; I'm going to explicitly error out on such cases in the backend, at least for the moment.
    • 1c7e047 : When building a module on-demand, clear out the "non-modular" language and preprocessor options (such as macro definitions) first.
    • 221d5a5 : [libclang] Correct annotation and taking of cursor for objc class references inside the IBOutletCollection attribute.
    • 18aa2ff : Rename InterFace - Interface, no functionality change.
    • 6dc6f00 : A strong property of block type has "copy" setter semantics, not "retain". This is consistent with the behavior of assigning into a __strong l-value, and it's also necessary for ensuring that the ivar doesn't end up a dangling reference. We decided not to change the behavior of "retain" properties, but just to make them warnings/errors when of block type.
    • f1e7af3 : Add the location of the interface reference to IBOutletCollectionAttr. Depends on a llvm tablegen commit.
    • 265941b : Refactoring, mostly to give ObjCPropertyDecls stronger invariants for their semantic attributes and then to take advantage of that.
    • 7d5e81b : Switch the serialization of LangOptions over to use the .def file. We should no longer have the serialization of LangOptions out of sync with the structure itself (yay).
    • e87158d : Thread safety: Initializing var before exhaustive switch statement to deal with extraneous warning produced by gcc but not clang
    • 6639e92 : [libclang] -Allow cursor visitation of an attribute using its source range -Add C++ 'final' and 'override' attributes as cursor kinds -Simplify the logic that marks 'final' and 'override' attributes as tokens.
    • e289d81 : Switch LangOptions over to a .def file that describes header of the language options. Use that .def file to declare the LangOptions class and initialize all of its members, eliminating a source of annoying initialization bugs.
    • 8c7f4bc : [driver] Add follow up comment for r139551 to ensure the unused option is not removed in the future. rdar://10110352 and PR10908
    • 768d6ca : Keep the source range of attributes. Depends on a llvm tablegen commit.
    • ffcc310 : Record the full source range of an attribute.
    • fe522c2 : Add a struct-size check for modules when dealing with module-private fields
    • c985b88 : In Microsoft mode, downgrade "goto into protected scope" from error to warning if we are jumping over a variable initialization via a goto.
    • e05ee6d : Switch -Wreturn-type to completely rely on the CFG model of no-return. This deletes a bunch of crufty code, and allows more logic sharing between the analyzer and the warnings.
    • 8375416 : Add a bit to the CFGBlock to track when it contains a no-return CFGElement. This will allow greatly simplifying the logic in -Wreturn-type.
    • dba3fb5 : Consolidate the logic for building a no-return CFG block into a single location with a single comment rather than scattering it in three places.
    • c5d9a90 : Don't use native atomics on ivars whose size is not a power of two, even on architectures that support unaligned access (which is the only way this is otherwise legal, given that ivars apparently do not honor alignment attributes).
    • d6ce22c : This test seems pretty low-value.
    • c8cfc74 : Enhance the CFG construction to detect no-return destructors for temporary objects and local variables. When detected, these split the block, marking the new one as having only the exit block as a successor. This prevents a large number of false positives in warnings sensitive to no-return constructs such as -Wreturn-type, and fixes the remainder of PR10063 along with several variations of this bug that had not been reported. The test cases are extended across the board to cover these patterns.
    • 6c11f0b : Handle reference properties correctly in the trivial-getter check.
    • 5889c60 : Always emit bitfield properties using expression behavior, even if they're atomic. This is probably something we should warn about.
    • 1e1f487 : Unify the decision of how to emit property getters and setters into a single code path. Use atomic loads and stores where necessary. Load and store anything of the appropriate size and alignment with primitive operations instead of going through the call.
    • 7824365 : When compiling a module on-demand, re-use the diagnostics client already provided. This required a little bit of clean-up in the way that VerifyDiagnosticsClient managed ownership of its underlying "primary" client, because now it will no longer always take ownership.
    • 21cae20 : When an import statement fails to find a module in the module cache, but there is a corresponding umbrella header in a framework, build the module on-the-fly so it can be immediately loaded at the import statement. This is very much proof-of-concept code, with details to be fleshed out over time.
    • 41bdde9 : Privatize the setter/getter call generation methods, plus some minor modernization. No functionality change.
    • dc3e725 : [driver] Ignore the '--' option, rather then fail. Do so to match gcc's behavior. rdar://10110352 and PR10908
    • f95a201 : [analyzer] CmpRuns can now optionally delete empty reports.
    • 7613c73 : Thread safety: small formatting change
    • c295461 : [libclang] For getDeclFromExpr in CIndex.cpp, associate the decl of a DeclRefExpr, MemberExpr, etc. with a CastExpr if it is ImplicitCast, since the implicit cast is the one that is invisible in source code.
    • 544055f : [analyzer] CmpRuns.cmpScanBuildResults() should be easy to call from other modules.
    • 22d70e0 : Rename CmpRuns into CmpRuns.py so that it could be used as a module.
    • 9a6da69 : Introduce a cc1-level option to provide the path to the module cache, where the compiler will look for module files. Eliminates the egregious hack where we looked into the header search paths for modules.
    • 48822fb : Kill off an irrelevant FIXME
    • e7566cf : By popular demand, enumerate all builtin types!
    • 6eef9fb : Refactor CheckAdditionOperands() to use early return for pointer addition.
    • e389585 : Diagnose attempt to mark function-local declarations as __module_private__.
    • 773d847 : [analyzer] Simplify the test, use generic/more descriptive names.
    • 3d3aa19 : Add an assert so that new builtins do not sneak without proper debug info.
    • 74a292f : Update test to fix windows buildbot.
    • 26d43cd : [libclang] In ASTUnit::Parse copy the CompilerInvocation object instead of modifying directly for the preamble.
    • 40098e8 : [libclang] Make c-index-test check CINDEXTEST_REMAP_AFTER_TRIAL environment variable, which when set it determines the trial number after which the remapping of files should take effect.
    • d9f1934 : Fix two comments from warn to emit error to match the actual diagnostic used.
    • 7a75646 : [analyzer] Fix a failure encountered while analyzing bind (radar://10105448).
    • a81fffe : Doxygen comments.
    • f7afe4a : [analyzer] Fix a new failure encountered while building Adium exposed as a result of r138196(radar://10087620). ObjectiveC property of type int has a value of type ObjCPropRef, which is a Loc.
    • 0047ed1 : [analyzer] Test for -analyze-function on ObjectiveC to accompany r139439.
    • e8ee3f2 : Fix debug info encodings for char16_t and char32_t.
    • 591dc84 : Allow __module_private__ on fields
    • f3a762a : Remove the restriction on module-private friends. Since the friend declaration may be the first declaration, we want the ability to that declaration to be marked module-private.
    • eced60c : Only predefine the __EXCEPTIONS macro if C++ exceptions are turned on. Only predefine the OBJC_ZEROCOST_EXCEPTIONS macro if Objective-C exceptions are turned on. Fixes PR10910.
    • cb4d7c2 : Silence ?: precendence warning when parenthesis are present.
    • afc5b15 : Silence "end of non-void function" warnings with llvm_unreachable and add an assert.
    • 3a448fb : objc rewriter - more fixes to support compiling the rewritten test case having instancetype. Fix in rewriter is unrelated to using of instancetype. Test case uses other feature not yet supported in the rewriter. There is more work to do, but this is an ongoing task and not urgent at this time.
    • a2f4ae8 : remove pedantic ;
    • bbb253c : Modernize and comment; no functionality change.
    • 71c758d : Simplify the generation of Objective-C setters, at least a little. Use a more portable heuristic for deciding when to emit a single atomic store; it's possible that I've lost information here, but I'm not sure how much of the logic before was intentionally arch-specific and how much was just not quite consistent.
    • 33e56f3 : Rename the ARC cast kinds to start with "ARC".
    • ac5ecf4 : Correctly referring to the null pointer as 'null' not the macro 'NULL' in the boolean conversion diagnostic message.
    • 6f2ec51 : Make this test portable on Win32.
    • 4f4f349 : Show either a location or a fixit note, not both, for uninitialized variable warnings.
    • b1f251f : Missed a %local use; hopefully this clears this test up.
    • a81b36d : Fix a broken assert in AST/DeclCXX.cpp.
    • 42f19be : clang part of r139458; un-XFAIL testcase.
    • 5c988bd : Revision 139454 fixed a broken assert in LLVM, which causes a test failure in CodeGen/palignr.c, which has been marked XFAIL for the time being. A bug has been filed at PR10901 for this issue.
    • bf379a6 : Make this test not depend on unnecessary details and IR variable names.
    • dc05b11 : When converting a block pointer to an Objective-C pointer type, extend the lifetime of the block by copying it to the heap, or else we'll get a dangling reference because the code working with the non-block-typed object will not know it needs to copy.
    • b332109 : Fix a diagnostics crasher with -Wmissing-noreturn in Objective-C methods, and improve the diagnostic slightly along the way. Fixes rdar://problem/10098695.
    • 78bf680 : Fix a -Wreturn-type warning due to this field not explicitly having the enumeration type.
    • 68f76b1 : Emit debug info for wchar_t.
    • 02a5e87 : Don't crash when we fail to load a module. It's unbecoming of a well-bred compiler like Clang.
    • 94da158 : Clean up our handling of Objective-C definitions in AST files. Rather than having CodeGen check whether a declaration comes from an AST file (which it shouldn't know or care about), make sure that the AST writer and reader pass along "interesting" declarations that CodeGen needs to know about.
    • d1fe529 : [analyzer] -analyze-function for ObjectiveC should check if any of the methods match the name (not only the first one).
    • 08e0bc1 : Kill of the Decl::PCHLevel field entirely. We now only need to know whether a Decl was deserialized from an AST file (any AST file).
    • a1364be : Extend the Stmt AST to make it easier to look through label, default, and case statements. Use this to make the logic in the CFG builder more robust at finding the actual statements within a compound statement, even when there are many layers of labels obscuring it.
    • 35120c6 : The translation unit is never deserialized
    • 530b14a : Eliminate all but one caller of Decl::getPCHLevel()
    • 919814d : Introduce a new predicate Decl::isFromASTFile() to determine whether a declaration was deserialized from an AST file. Use this instead of Decl::getPCHLevel() wherever possible. This is a simple step toward killing off Decl::getPCHLevel().
    • d5b1605 : Thread safety: removing unnecessary import and reordering import list
    • 0fed26d : Thread safety: removing unnecessary import
    • ef004ec : Remove trailing } in comment.
    • 77f68bb : Bring llvm.annotation* intrinsics support back to where it was in llvm-gcc: can annotate global, local variables, struct fields, or arbitrary statements (using the __builtin_annotation), rdar://8037476.
    • 712f2fc : In the ASTReader, replace the never-NULL Preprocessor pointer with a Preprocessor reference. Simplify some code along the way, so there is no separate "initialize the preprocessor" step.
    • fd641f9 : Add smarter sorting of overload candidates that failed template deduction.
    • acae011 : Carry the debug information from single exit unified return block along with the new insert point.
    • 3594277 : In ASTReader, replace the never-NULL ASTContext pointer with an ASTContext reference. Remove all of the extra checking and logic that was used to cope with a NULL ASTContext. No effective functionality change.
    • 6274d30 : Friends cannot be declared module-private
    • 5db255e : Mark the translation unit as having lexical/visible storage only when we actually have data for that lexical or visible storage
    • 5181ad0 : Back out r139358 "[PCH] When loading the decls linked to an identifier, also make them visible in the translation unit," which isn't needed now that John's eliminated the AST dependency in blocks CodeGen.
    • d023aec : Specializations cannot be module-hidden. Diagnose attempts to do so.
    • 13db5cf : Treat the weak export of block runtime symbols as a deployment-target feature akin to the ARC runtime checks. Removes a terrible hack where IR gen needed to find the declarations of those symbols in the translation unit.
    • 8891480 : objc rewriter - Add rewriter test for new instancetype along with minor rewriter fix to handle that. This test is still incomplete due to rewriter issues unrelated to instancetype.
    • 5c16d63 : Don't produce 'instancetype' as the type of a message send expression. Map it down to 'id'.
    • e761230 : __module_private__ is inherited by redeclarations of an entity, and must also be present of the first declaration of that entity.
    • 9134294 : [analyzer] When running scan-build with -plist on ./configure, delete the plist files. (scan-build does not set the $HtmlDir when running against configure. Previously, this implied that the plist files would appear in the current directory, with this patch they will get deleted.)
    • 6311d2b : Propagate __module_private__ from previous declarations to later declarations.
    • bbcb7ea : When type-checking a call to an overloaded, builtin atomic operation, construct a new DeclRefExpr rather than re-using the existing DeclRefExpr. Patch by Likai Liu, fixes PR8345.
    • 99107eb : Thread safety: This patch deals with previously unhandled cases when building lock expressions. We now resolve this expressions, avoid crashing when encountering cast expressions, and have a diagnostic for unresolved lock expressions
    • 402aa06 : Thread Safety: Moving the analysis to a new file
    • a49d1d8 : Thread safety: refactoring test cases
    • 75f23ae : Thread safety: refactoring to use an error handler
    • 67bc607 : Update comment because JumpDiagnostics.cpp is not just about VLA scope.
    • 3323fad : Clean up the sentinel-attribute checking code a lot. Document what 'nullPos' is supposed to mean, at least at this one site. Use closed forms for the arithmetic. Rip out some clever but ultimately pointless code that was trying to use 0 or 0L depending the size of a pointer vs. the size of int; first, it didn't work on LLP64 systems, and second, the sentinel checking code requires a pointer-typed value anyway, so this fixit would not have actually removed the warning.
    • ead363b : Do a lookup for the blocks runtime globals to see if they were declared, instead of codegen waiting to consume such a declaration, which won't happen if that decls are coming from a PCH.
    • 84ef0b5 : [PCH] When loading the decls linked to an identifier, also make them visible in the translation unit.
    • 45df9c6 : Use ArrayRef in ExternalASTSource::SetExternalVisibleDeclsForName.
    • 7f3a6d3 : Code formatting; no functionality change.
    • 0bcc9bc : Contextually converting to 'id' is not a useful operation. Contextually converting to an arbitrary Objective-C pointer type is. Without significantly re-implementing anything, change the API to reflect this, and as a minor optimization, strip the pointer conversion off before potentially building it.
    • 1d9b3b2 : Give conversions of block pointers to ObjC pointers a different cast kind than conversions of C pointers to ObjC pointers. In order to ensure that we've caught every case, add asserts to CastExpr that strictly determine which cast kind is used for which kind of bit cast.
    • 5e4c80b : Clean up the RebuildUnknownAnyExpr visitor in SemaExpr.cpp. Mainly swapped around variable names so that this visitor be more like other visitors in clang.
    • 90ab75b : Changed references of BaseTy, MemInitTy, CXXScopeTy, TemplateParamsTy to CXXBaseSpecifier, CXXCtorInitializer, NestedNameSpecifier, TemplateParameterList and removed their typedefs.
    • b2fc690 : Change references to StmtTy to Stmt and removed typedefs of StmtTy. Also removed typedef of AttrTy since it is not used.
    • 8d267c5 : Modules: introduce the __module_private__ declaration specifier, which indicates that a declaration is only visible within the module it is declared in.
    • f81e5a9 : Change all references of type ExprTy to Expr and get rid of the typedefs.
    • ccd891a : Capitialize paramater names in SemaExpr.cpp and resolve any parameter name conflicts between declarations and definitions from this and previous refactorings.
    • 69ff26b : The integer type of an enumeration type isn't always canonical
    • 5330ee0 : Rearrange comment slightly for Bill.
    • e02e5e2 : Remove WCHAR_MIN and WCHAR_MAX from limits.h. According to posix and c99 these should be in stdint.h - and they already are.
    • 179b920 : Thread safety: small edit to unused variation on warning left in by accident from earlier commit
    • e786247 : Add some delay between PCH creation and modifying one of the headers it depends on, which will---hopefully make this test predictably pass on Windows
    • 634c8af : Extend -Wliteral-conversion to catch "int i = -1.234"
    • 8bccabe : Thread Safety: In C++0x Mutexes are the objects that control access to shared variables, while Locks are the objects that acquire and release Mutexes. We switch to this new terminology.
    • 87198c3 : The frexp, modf, and remquo builtins are not 'const'.
    • af37061 : Thread Safety: adding basic no thread safety analysis option
    • 978191e : Thread safety: Adding basic support for locks required and excluded attributes
    • a53257c : Thread safety: shared vs. exclusive locks
    • 3bb4358 : Thread safety: small formatting change in test comments
    • c0244c5 : Look through SubstNonTypeTemplateParmExpr nodes in the various Expr::Ignore* methods that also look through implicit casts.
    • ed9d84a : Thread safety: added support for function scopes in attribute arguments.
    • eff98fc : Thread Safety: Patch to implement delayed parsing of attributes within a class scope.
    • aebb653 : Document __has_feature(objc_instancetype).
    • 8f7c540 : [libclang] Fix annotation and getting a "macro expansion" cursor for a builtin macro expansion.
    • 5471bc8 : Allow C++0x enumerations with a fixed underlying type in Objective-C. The @encode'ing of such an enumeration type is the same as its underlying type. rdar://problem/5276348.
    • 6aff47d : Formatting.
    • 29f3942 : Add a block comment explaining how the different source locations work including some source examples.
    • 62f940b : Added missing initialization.
    • 14068e8 : Adding FixIts to static/inline main declaration diagnostics.
    • e97179c : Implement the Objective-C 'instancetype' type, which is an alias of 'id' that can be used (only!) via a contextual keyword as the result type of an Objective-C message send. 'instancetype' then gives the method a related result type, which we have already been inferring for a variety of methods (new, alloc, init, self, retain). Addresses rdar://problem/9267640.
    • 4fe4d73 : [driver] i386 kext preprocessor jobs also need their unsupported options filtered. This happenis when -save-temps is specified. rdar://problem/10088387
    • b8db7cd : Optimize the preprocessor's handling of the __import_module__ keyword. We now handle this keyword in HandleIdentifier, making a note for ourselves when we've seen the __import_module__ keyword so that the next lexed token can trigger a module import (if needed). This greatly simplifies Preprocessor::Lex(), and completely erases the 5.5% -Eonly slowdown Argiris noted when I originally implemented __import_module__. Big thanks to Argiris for noting that horrible regression!
    • 0e2ca01 : [arcmt] Try fixing the windows buildbot.
    • a3e9a96 : Revert r139222, operator-() in PreprocessingRecord::iterator. It is useful to meet the requirements of the InputIterator concept.
    • 5520f23 : Change diagnoseAddressOfInvalidType() to use an enum to determine what error message to display. Also, move the function call into on location instead of having it spread among many places in the if/else statements.
    • 2eef427 : When parsing a function-try-block that does not have a ctor-initializer, remember to call the Sema action to generate default ctor-initializers. What a delightful little miscompile. Fixes PR10578 / rdar://problem/9877267.
    • 82340e8 : Fix Sema::CorrectTypo to ignore found but unresolved symbols
    • 3f5af5d : More missing dependencies picked up by Ninja.
    • 066d502 : Fix up MCInstPrinter creation to take the new SubtargetInfo parameter (see LLVM r139237)
    • edc0882 : objc-gc: More sema work for properties declared 'weak' in GC mode. // rdar://10073896
    • 5770bb7 : Extract the emission of the diagnostic's location into a separate function. This is really the beginning of the second phase of refactorings here. The end goal is to have (roughly) three interfaces:
    • 6c57cce : Move the HilightRange method from TextDiagnosticPrinter down to CaretDiagnostic. It's completely generic, with nothing to do with the diagnostic client or info APIs.
    • d2156fc : Hoist the tab expansion into a helper function.
    • 0580e7d : Don't compute the same line number in two places, once inside a loop.
    • 900693b : Make sure the FunctionDecl's created by "#pragma weak" have correct ParmVarDecl's. PR10878.
    • 6015969 : [arcmt] Remove xfail on test for windows, Takumi reported that it passes mingw and msvc.
    • a1e99cc : operator-() in PreprocessingRecord::iterator is useless since we are returning a pointer to pointer.
    • befece1 : Rename variables in SemaExpr.cpp to give a more consistant naming scheme.
    • 78ea78b : Rename variables in SemaExpr.cpp to give a more consistant naming scheme.
    • 5182a18 : Switch the CharSourceRange array to a small vector. The array was a stack array of a magical size with an assert() that we never overflowed it. That seems incredibly risky. We also have a very nice API for bundling up a vector we expect to usually have a small size without loss of functionality or security if the size is excessive.
    • c83b975 : Switch clang over to using fence/atomicrmw/cmpxchg instead of the intrinsics (which will go away). LLVM CodeGen does almost exactly the same thing with these and the old intrinsics, so I'm reasonably confident this will not break anything.
    • 268942b : Rename variables in SemaExpr.cpp to give a more consistant naming scheme.
    • 9f60dee : Rename variables in SemaExpr.cpp to give a more consistant naming scheme.
    • 47eb898 : Change the self-reference visitor (which gives the warning for self-reference oninitalization warning of -Wuninitialized) to exclude member variables that can decay into pointers. This will cause it to no longer warn on this code:
    • 9a77669 : objc-gc: Don't force a __strong type'd property to be 'weak'. This prevents a crash and should probably be flagged as error - later to come.
    • 0f74d1e : In Microsoft mode, if we are inside a template class member function and we can't resolve a function call then create a type-dependent CallExpr even if the function has no type dependent arguments. The goal is to postpone name lookup to instantiation time to be able to search into type dependent base classes.
    • 46e3908 : [driver] When clang crashes, don't try to generate diagnostics (i.e., preprocessor output) with multiple -arch options.
    • 4019f7d : objc-gc: Adds support for "weak" property attribute under GC. // rdar://10073896
    • c79a0d2 : Remove the doxyment for this now defunct parameter.
    • f15651a : Don't recompute the presumed loc twice in 5 lines of code... Spotted by inspection.
    • 8a7b3f7 : Use ArrayRef for the fixit hint array rather than a pointer and a size. Clean up loops over the hints to use the more idiomatic iterator form in LLVM and Clang.
    • 682630c : Hoist the construction of the FixItHint line into a member function with a defined interface. This isn't as nice as the previous one, but should get better as I push through better data types in all these functions.
    • f1775fb : Rename variables in SemaExpr.cpp to give a more consistant naming scheme.
    • 1ddc9c4 : When extracting the callee declaration from a call expression, be sure to look through SubstNonTypeTemplateParmExprs. Then, update the IR generation of CallExprs to actually use CallExpr::getCalleeDecl() rather than attempting to mimick its behavior (badly).
    • ba26149 : Rename variables in SemaExpr.cpp to give a more consistant naming scheme.
    • 1c8cfbf : Rename variables in SemaExpr.cpp to give a more consistant naming scheme.
    • def7584 : Rename variables in SemaExpr.cpp to give a more consistant naming scheme.
    • 08062aa : Rename variables in SemaExpr.cpp to give a more consistant naming scheme.
    • f1bb0b0 : Place 'equality comparison with extraneous parentheses...' into a subgroup of -Wparentheses called -Wparentheses-equality.
    • f8b7f71 : Implement the Named Return Value Optimization (NRVO) for blocks.
    • f7720da : Rename variables in SemaExpr.cpp to give a more consistant naming scheme.
    • f7603f6 : Implement the Named Return Value Optimization (NRVO) for Objective-C++ methods. Fixes PR10835 / rdar://problem/10050178.
    • facef2e : Rename variables in SemaExpr.cpp to give a more consistant naming scheme.
    • 1da27a1 : Rename variables in SemaExpr.cpp to give a more consistant naming scheme.
    • 33fc757 : Rename variables in SemaExpr.cpp to give a more consistant naming scheme.
    • 5cc8680 : Spelling.
    • 2e8a95d : Rename variables in SemaExpr.cpp to give a more consistant naming scheme.
    • ae5860e : Don't emit -Wpadded warnings without a valid SourceLocation. This can happen when RecordLayoutBuilder is used by Codegen, not Sema.
    • 576cf17 : Rearrange code so that we pass the right pointer to delete[] when an exception is thrown constructing the array elements in an array new expression. Fixes PR10870.
    • 8ef5c8e : Rename variables in SemaExpr.cpp to give a more consistant naming scheme.
    • cafd30b : Rename variables in SemaExpr.cpp to give a more consistant naming scheme.
    • 7640c00 : Advertise support for cxx_range_for as an extension in C++98 mode. Patch by Jean-Daniel Dupas! Also provide a modicum of test coverage for ranged for in C++98.
    • 58e9797 : Finish implementing (de-)serialization of the CXXDefinitionData bits needed for implicit move constructors and move assignment operators. Fixes PR10847.
    • b2b5658 : When performing a derived-to-base cast on the right-hand side of the synthesized move assignment within an implicitly-defined move assignment operator, be sure to treat the derived-to-base cast as an xvalue (rather than an lvalue). Otherwise, we'll end up getting the wrong constructor.
    • 2315318 : PR10867: Work around a bug in lit. Multiple RUN: lines are joined with &&, so:
    • 335a13f : Add missing dependency
    • edc41e1 : Fix typo
    • 41ee7a3 : Add the resource directory to the search path for Driver::GetFilePath, as well as the search path printed by -print-search-dirs.
    • 1daa58e : Speed up BCPL comment lexing by looking aggressively for newlines and then scannig backwards to see if the newline is escaped.
    • 5d6ae28 : Use the Lexer's definition of whitespace here.
    • 822eeb5 : Stop cluttering the test directory with temporary files.
    • 38f1d68 : Enable -Wdangling-fields by default in Clang. I've run this warning over a very large chunk of code and found zero false positives. I've only found a few bugs, but that likely is because bugs of this nature actually do manifest. We've also identified several bugs that were caught by Valgrind, but would have been caught faster and more easily with this warning.
    • 017ab77 : Implement the suggested resolution of WG21 N3307 issue 19: When determining whether a class is an aggregate in C++0x, treat all functions which are neither deleted nor defaulted as user-provided, not just special member functions. The wording of the standard only defines the term "user-provided" for special member functions, but the intent seems to be that any function can be user-provided.
    • f747ce6 : PR10506: Extend test for temporary cleanups in range-based for loop to cover the dependent case.
    • f740012 : Pass 0 instead of a empty TemplateArgumentListInfo when creating a CXXDependentScopeMemberExpr to handle a "this-" fixit (lookup into dependent bases of class template)
    • 41a50a9 : Use const_cast to avoid warnings.
    • 87e96eb : PR10458: Last part of providing 'auto' type specifier as an extension in C++98: permit it within type-ids.
    • 8f4fb19 : PR10458: Finesse behaviour of C++0x features when in pre-0x mode. Accept for-range and auto with an ExtWarn, and produce a -Wc++0x-compat warning in C++98 mode when auto is used as a storage class.
    • 74e611a : Add test case for defaulted copy and move structure validation. Fix bug this uncovered. Address minor comments from Doug. Enable cxx_implicit_moves feature.
    • 8e85e85 : Handle a code-completion token being passed to the macro stringify operator. Fixes http://llvm.org/PR10826.
    • 7d10087 : Support code-completion for C++ inline methods and ObjC buffering methods.
    • c8c97a0 : Fix Lexer::ComputePreamble when MaxLines parameter is non-zero.
    • fec0959 : More unused variable removal.
    • d77ba89 : Make helpers static, remove unused variables.
    • bf3380a : Teach -Wdangling-field to warn about temporaries bound to references as well.
    • 81c6477 : Add a simple new warning to catch blatantly dangling pointer and reference members of classes. We've had several bugs reported because of this, and there's no reason not to flag it right away in the compiler.
    • 0f2c1ce : Revise test and see if it passes with a release-built clang.
    • 43dff1b : Fix some indenting issues in SemaExpr.cpp
    • d295b82 : blocks: Support capturing complex variable in block. // rdar://10033896
    • 8289f49 : Refactor UsualArithmeticConversions() in SemaExpr.cpp into several functions.
    • 776b790 : revert patch in r139020
    • 6f27542 : -Wuninitialized: fix insidious bug resulting from interplay of blocks and dead code. Fixes rdar://problem/10060250.
    • da8e571 : blocks: Support capturing complex variable in block. // rdar://10033896
    • cc2fca2 : Make StmtDumper::VisitCXXFunctionalCastExpr dump the attached cast kind. Fix the cast kind for a cast from floating-point to enum type. (The difference isn't actually visible, but that's just because IRGen is overly forgiving.) Per report by Enea Zaffanella on cfe-dev.
    • d1e5a89 : [analyzer] Remove TransferFuncs.h, then deal with the fallout.
    • 910c405 : [analyzer] Move RetainReleaseChecker to the Checkers library and rename it to RetainCountChecker...and clean up the file while I'm at it.
    • cca6158 : Hoist the emission of parseable fixits into a helper method, simplifying and reducing indentation through the clever use of early exits. ;]
    • 46331ef : [analyzer] Remove lingering CFRefCount creation, which would have resulted in a leak. There's room for improvement here...
    • e1b3643 : [analyzer] Fix member initialization order. No functionality change.
    • 17a38e2 : [analyzer] Move the knowledge of whether or not GC is enabled for the current analysis from CFRefCount to ExprEngine.
    • e648ac3 : Move the warning for different enum comparisons and the warning for using NULL as a non-pointer in a binary operation into separate functions.
    • 7be1be0 : Reduce code duplication for pointer comparisons in CheckCompareOperands().
    • 097ecd2 : Pull out incomplete pointer type checking code, used from arithmetic checking functions, into its own function.
    • 26f9607 : Refactor CheckConditionalOperands() by moving chunks of code to helper functions making a slimmer function.
    • 09a26ad : Refactor CheckAddressOfOperand() by pulling out redundant code and moving hard coding strings from SemaExpr.cpp to DiagnosticSemaKinds.td.
    • f8a1e51 : Always construct an ASTReader with a non-NULL ASTContext and Preprocessor, eliminating the constructor that was used by ASTUnit (which didn't provide an ASTContext or Prepreprocessor). Ensuring that both objects are non-NULL will simplify module loading (but none of that is done yet).
    • bcfd1f5 : Extend the ASTContext constructor to delay the initialization of builtin types (When requested). This is another step toward making ASTUnit build the ASTContext as needed when loading an AST file, rather than doing so after the fact. No actual functionality change (yet).
    • 998b3d3 : Allow the preprocessor to be constructed without performing target- and language-specific initialization. Use this to allow ASTUnit to create a preprocessor object *before* loading the AST file. No actual functionality change.
    • db44a6b : Refactor CheckAdditionOperands(), CheckSubtractionOperands(), and CheckIncrementDecrementOperand() in SemaExpr.cpp to move reused code to separate functions.
    • e2ca828 : Don't try keeping a 'LeadingEmptyMacroLoc' in NullStmt. This fails in the face of buffering C++/ObjC method bodies.
    • 1494a4f : [arcmt] Clear out temporary dirs in the tests or we may get failures because of leftovers.
    • 7803ec8 : Don't try to emit unsupported templated friend declarations. They're unsupported and may very well be dependent-types, triggering an assertion in debug info codegen.
    • 898267f : Extend the self-reference warning to catch when a constructor references itself upon initialization, such as using itself within its own copy constructor.
    • aec230d : [arcmt] Fix test/ARCMT/remove-statements.m regression due to Objective-C method buffering(rdar://10056942)
    • 3e3cd93 : Teach ASTContext and Preprocessor to hold on to references to the same LangOptions, rather than making distinct copies of LangOptions. Granted, LangOptions doesn't actually get modified, but this will eventually make it easier to construct ASTContext and Preprocessor before we know all of the LangOptions.
    • e3685fd : default property synthesis is off by default for now.
    • 556ecc7 : Make test slightly trickier
    • 4a04247 : objective-c: Make auto synthesis of properties the default. This concludes //rdar://8843851
    • 7143aab : Modules hide macro definitions by default, so that silly things like include guards don't show up as macro definitions in every translation unit that imports a module. Macro definitions can, however, be exported with the intentionally-ugly #__export_macro__ directive. Implement this feature by not even bothering to serialize non-exported macros to a module, because clients of that module need not (should not) know that these macros even exist.
    • 8efcc01 : Enable -fdelayed-template-parsing by default on Win32. I had to force -fno-delayed-template-parsing on some Index tests because delayed template parsing will change the output of some tests.
    • ab78408 : Fix PR10744 by adding the toolchain path to the regular program path and doing a simple search. Before we would manually check for the linker before the -B options were searched.
    • 104087b : Add 4.4.6 to GccVersions[] in lib/Driver/ToolChains.cpp.
    • d56763f : If size was equal to 0, either NULL or a pointer suitable to be passed to free() is returned by realloc(). Most code expect NULL.
    • fa77cba : Fix "multi-line comment" compiler error.
    • 45d3d71 : When defining the implicit move assignment operator, don't perform semantic analysis when taking the address of an xvalue. Instead, just build the unary operator directly, since it's safe to do so (from the IRgen and AST perspectives) for any glvalue. Fixes PR10822.
    • e6b8d68 : Support importing of ObjC categories from modules.
    • 50c909b : Create a CaretDiagnostic class to hold the logic for emitting (unsurprisingly) caret diagnostics. This is designed to bring some organization to the monstrous EmitCaretDiagnostic function, and allow factoring it more easily and with less mindless parameter passing.
    • 0d6b893 : Sink all of the include stack printing logic into its member function.
    • 71f11d6 : [analyzer] Revert a regression introduced in r133104(The ARC Migration Tool..) due to a merge error.
    • 3269197 : Test for default property synthesis.
    • 8697d30 : objective-c: this patch (re)introduces objective-c's default property synthesis. This new feature is currently placed under -fobjc-default-synthesize-properties option and is off by default pending further testing. It will become the default feature soon. // rdar://8843851
    • e082af1 : Switch the "no module found" default-fatal warning to a default-fatal error.
    • 819e745 : Don't assert when diagnosing a missing cast of an unknown-anytype message send to an unknown method.
    • a488497 : [driver] If no -miphoneos-version-min is specified on the command line *and* IPHONEOS_DEPLOYMENT_TARGET if undefined, set -miphoneos-version-min based on isysroot.
    • c0846d6 : Make sure to initialize field. Hopefully this will fix some test failures on Windows.
    • 5aa5a81 : Don't verify the name of the driver executable. It's not really relevent to this test, and doesn't always start with 'clang' when fully resolved on some build systems.
    • 1af9d9e : [analyzer] Fix varargs helper to only use POD types even for named arguments. Thanks, Joerg.
    • 65030af : Switch __import__ over to __import_module__, so we don't conflict with existing practice with Python extension modules. Not that Python extension modules should be using a double-underscored identifier anyway, but...
    • 140ab23 : objective-c - This patch buffers method implementations and does the Sema on their body after the entire class/category @implementation is seen. This change allows messaging of forward private methods, as well as, access to synthesized ivars of properties with foward synthesize declarations; among others. In effect, this patch removes several restrictions placed on objective-c due to in-place semantics processing of methods. This is part of // rdar://8843851.
    • 2017422 : Update libclang to have APIs corresponding to the new 'expansion' naming system for macro-backed source locations. The old APIs are preserved for legacy users.
    • 14c3633 : Serialize the new bits in CXXRecordDecl::DefinitionData.
    • b0656ec : Improve the diagnostic text for -Wmissing-noreturn to include the name of the function in question when applicable (that is, not for blocks). Patch by Joerg Sonnenberger with some stylistic tweaks by me.
    • f84139a : Change err_pp_file_not_found back to an Error; when it's a Warning, we suppress it in system headers. And it is not a good idea to suppress it in system headers. (This was originally changed in r134996 to implement -MG.)
    • 1155c42 : Allow C99 hexfloats in C++0x mode. This change resolves the standards collision between C99 hexfloats and C++0x user-defined literals by giving C99 hexfloats precedence. Also, warning about user-defined literals that conflict with hexfloats and those that have names that are reserved by the implementation. Fixes rdar://problem/9940194.
    • b89d5ed : Fix PR10694: Boolean conversions can be from pointers, and those conversions aren't considered narrowing conversions.
    • e5a54b6 : When writing out the entries in a lookup table for a DeclContext, make sure that all of the CXXConversionDecls go into the same bucket. Otherwise, name lookup might not find them all. Fixes rdar://problem/10041960.
    • 85ea7aa : Declare and define implicit move constructor and assignment operator.
    • 955fadb : Remove a few mutating ObjCCategoryDecl methods.
    • 45118d8 : In ASTWriter::WriteDeclContextVisibleBlock, don't write empty lookups.
    • 2334f3a : Remove a couple of unnecessary objc method lookups.
    • 5f616b7 : [libclang] Rename some functions and make sure we don't iterate past the tokens array.
    • e8cff36 : objc - fixes a regression in declaring c decls nested in objective-c containers due to recent changes to objc decl contexts. // rdar://10041908
    • 3b84ab9 : Remove obsolete ObjCInferRelatedReturnType from LangOptions...the correct option is ObjCInferRelatedResultType.
    • 49e34be : The size of struct UnwindException varies by platform with no apparent general rule. Just special-case it as appropriate. PR10789.
    • 2148011 : Be sure to emit lvalue-to-rvalue casts for loads from x-values. Doing this happens to disrupt the pattern that ARC was looking for for move optimizations, so we need to fix that simultaneously.
    • dad879a : Update mingw-w64 part of the user manual, from Ruben Van Boxem!
    • 2cae1e2 : Fix a typo when determining whether to strip cv-qualifiers during template argument deduction
    • 888982e : Update python testcase for GNU old-style field designator warning, from Anders Waldenborg!
    • b60a2be : Add support for Cursor.displayname in python bindings, from Anders Waldenborg!
    • 709bca8 : Update the comment on the default-argument conversion fix; thanks to Johannes Schaub for talking me around to sense.
    • 1335cf0 : Thread safety: Adding a name to the thread safety diagnostic group to prevent typos
    • 27f0776 : Do not warn about [super finalize] in arc mode.
    • f619cdc : Clang/PNaCl: Improve test coverage for PNaClTargetInfo (type aligns), fixes nits: - wrong alignment for double (it was 4, but 8 is desired), - added checks for _REENTRANT define, - fixed the issue that defines were not tested (because the check for inside #ifdef).
    • 05b436e : Thread safety: added basic handling for pt_guarded_by/var and guarded_by/var annotations. We identify situations where we are accessing (reading or writing) guarded variables, and report an error if the appropriate locks are not held.
    • a5e2b23 : Fix a rewriter bug caused by recent changes in objc's group decls.
    • ef534ce : Add missing function _mm_ucomige_sd to emmintrin.h. PR10803.
    • 065a405 : [analyzer] MacOSKeychainAPIChecker: Simplify getSymbolForRegion by using existing API. Thanks Jordy.
    • 8b6eb7c : Fix: Bug 10798 - [analyzer] Crash when analyzing ICU. (A slight improvement on the previous commit.)
    • 5c96f86 : Fix bug 10797: Crash: "castTy() argument of incompatible type!" assert when analyzing ICU.
    • b1f2f47 : Some minor updates to the Linux search path handling for Slackware. Patch by Will Dietz. PR10692.
    • 10af879 : Minor clean up of objc's decl context stuff. No change in functionality.
    • ece3894 : Add and document __has_feature values for the remaining C++0x features, so clients can check for the availability of these features even before we get around to implementing them.
    • b4d0a96 : Thread safety: various minor bugfixes, with test cases
    • b227323 : Fix type mismatch in initialization (caught by -Wliteral-conversion)
    • 9906149 : Print 'int' instead of 'const int' in the narrowing conversion error, since the qualification of a type doesn't affect whether a conversion is a narrowing conversion. This doesn't work in template cases because SubstTemplateTypeParmType gets in the way.
    • 7daa846 : [analyzer] Remove empty obsolete header directories from StaticAnalyzer.
    • 80cb6e6 : Warn on missing [super finalize] calls.
    • f5e39ec : [analyzer] Header cleanup to decrease coupling (and recompilation). No functionality change.
    • dbd658e : [analyzer] Introduce a new callback for checkers, printState, to be used for debug-printing the contents of a ProgramState.
    • e2c8663 : [analyzer] update bug report url
    • 93bd5ca : [analyzer] Remove the ProgramState argument from ExprEngine::evalBind; we were ignoring it anyway. No functionality change.
    • fe27971 : [analyzer] Eliminate almost all uses of TransferFuncs from ExprEngine.
    • e38dd95 : [analyzer] Migrate argument invalidation from CFRefCount to ExprEngine.
    • 537716a : [analyzer] Change the check::RegionChanges callback to include the regions explicitly requested for invalidation.
    • 96a914a : Disable the l-value to r-value conversion on C++ class types passed to varargs functions in unevaluated contexts. AFAICT, there is no standards justification for this, but it matches what other compilers do and therefore preserves compatibility with certain template metaprogramming idioms.
    • b860739 : objective-c - Make warning on unimplemented protocols point to class implementation where it is supposed to be implemented. // rdar://10009982.
    • 07453ac : [analyzer] Rename current PathDiagnosticClient::HandlePathDiagnostic() to HandlePathDiagnosticImpl(), and slot in new HandlePathDiagnostic() for potentially handling concurrent access to PathDiagnosticClients (in the future).
    • fee618a : [analyzer] Pull body of loop in AnalysisConsumer::HandleDeclContext() into its own method. No real functionality change.
    • 05a4652 : [analyzer] Add test case for handling of __bridge_transfer that previously resulted in a 'stack address' warning (that was fixed in r138616). Fixes rdar://problem/10018376.
    • 95ed778 : objective-c: Treat top-level objective-c declarations , such as list of forward @class decls, in a DeclGroup node. Deal with its consequence throught clang. This is in preparation for more Sema work ahead. // rdar://8843851. Feel free to reverse if it breaks something important and I am unavailable.
    • 74cfb23 : Remove unused variables noticed by GCC.
    • 6be16fe : Take an entirely different approach to handling the "parsing" of __import__ within the preprocessor, since the prior one foolishly assumed that Preprocessor::Lex() was re-entrant. We now handle __import__ at the top level (only), after macro expansion. This should fix the buildbot failures.
    • 72e4d0c : [arcmt] Xfail the test for windows.
    • 5f8d604 : The lvalue-to-rvalue on structs in C++ is actually part of default argument promotion and needs to happen unconditionally. This is particularly semantically important in C++0x.
    • 6748ae1 : Twinify.
    • f4a3f95 : XFAIL one of the module tests on win32, until we figure out what's happening
    • cc68c9b : In C++0x mode, suggest nullptr as the initializer for an uninitialized pointer variable. Patch by David Blaikie!
    • 62088e3 : Control 'invalid conversion specifier' warnings under a subflag (-Wformat-invalid-specifier) of -Wformat. Fixes rdar://problem/10031930.
    • 40a0f9c : Improve caret location for the GNU old-style field designator warning, from David Blaikie
    • 16f6c03 : Silence a GCC warning
    • 831c631 : Remove the -import-module option. It's no longer useful
    • 484e2b1 : Try to unbreak the build on systems where uint64_t isn't something that StringRef::getAsInteger can handle as its second argument
    • 6aa52ec : Introduce support for a simple module import declaration, which loads the named module. The syntax itself is intentionally hideous and will be replaced at some later point with something more palatable. For now, we're focusing on the semantics: - Module imports are handled first by the preprocessor (to get macro definitions) and then the same tokens are also handled by the parser (to get declarations). If both happen (as in normal compilation), the second one is redundant, because we currently have no way to hide macros or declarations when loading a module. Chris gets credit for this mad-but-workable scheme. - The Preprocessor now holds on to a reference to a module loader, which is responsible for loading named modules. CompilerInstance is the only important module loader: it now knows how to create and wire up an AST reader on demand to actually perform the module load. - We search for modules in the include path, using the module name with the suffix ".pcm" (precompiled module) for the file name. This is a temporary hack; we hope to improve the situation in the future.
    • d37c67b : [arcmt] Add a test case for r138671 and improve the loop.
    • 6da28e2 : FreeBSD (apparently) does not support crash-recovery tests.
    • 56773de : [arcmt] Fix horrible bug where migrating files if there is a space in the paths of the migrated files. rdar://10022801
    • f43b5e8 : Cleanup r138662 per Ben and David's suggestions, thanks.
    • 2ea054f : Teach the ASTReader how to avoid cycles when loading declarations that are lexically within a particular DeclContext. Test forthcoming.
    • ee99c81 : Make sure the std::string isn't deallocated prior to use. Many thanks to Eli for catching this.
    • fe87fc7 : [driver] When generating temporary files allow a prefix to be added. In many cases we want the prefix to be the original file name less the suffix. For an input such as test.c to named temporary would be something like test-3O4Clq.o Part of rdar://problem/8314451
    • 9fc18c9 : When we're deserializing declarations lexically stored in a RecordDecl after having already deserialized the fields, clear out the fields first. This makes sure that we keep all of the declarations in the lexical context (including those implicitly added by later type-checking) within the same list. A test case for this behavior is coming as part of another commit; testing for this problem in isolation is a nightmare.
    • 9414449 : objc-arc: Mention property's attribute by name when finding life-time conflict with its declared ivar. // rdar://10007230
    • cec52f0 : Slight optimization enabled by the previous assert: emit all gl-value arguments as reference bindings.
    • 417162c : [analyzer] Remove a couple of unnecessary returns after llvm_unreachables.
    • 7b2f51c : Don't assert on taking the address of a non-type template parameter. Fixes PR10766.
    • 1795d37 : Make sure we don't crash printing builtin candidates for overloads of deleted operators. Fixes PR10757.
    • 8affed5 : Assert that a call argument is a gl-value iff the parameter is a reference type.
    • 66c2030 : In -Wno-error=non-pod-varargs, initialize a temporary with the crazy comma expression so that we get an r-value in the varargs position.
    • 8071797 : [driver] Remove a few more options when clang invokes cc1plus for i386 kexts. rdar://problem/10027287
    • 02368d0 : From Vassil Vassilev: unnamed decls cannot be removed from the lookup map.
    • fd71fb8 : What say we document some of these AggValueSlot flags a bit better.
    • 4418439 : Since the 'is aliased' bit is critical for correctness in C++, it really shouldn't be optional. Fix the remaining place where a temporary was being passed as potentially-aliased memory.
    • 90b2bdf : An initialization does not alias.
    • f59f5da : Take 2: Actually fix spacing.
    • 4906cf9 : Be sure to do unary conversions on the operand to an ARC bridged cast. Noticed by AST inspection by Ted Kremenek!
    • 1366862 : The allocated exception slot does not alias anything; should fix self-host.
    • 669cffa : 80-column.
    • 782f63e : Handle CXXTempObjectRegion in StackAddrEscapeChecker.
    • 1b90605 : [driver] Add -mglobal-merge/-mno-global-merge machine options to enable/disable merging of globals during codegen. Fixes rdar://problem/10017909.
    • 805bc1f : revert 138610, accidental commit.
    • 0bb3931 : git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138610 91177308-0d34-0410-b5e6-96231b3b80d8
    • 321d70f : [analyzer] Increase the number of possible checks for a checker.
    • 089ee11 : PNaClTargetInfo: add __ELF__, _REENTRANT and _GNU_SOURCE defines and update the test
    • 3a51d41 : Fix a crash-on-invalid.
    • 410ffb2 : Track whether an AggValueSlot is potentially aliased, and do not emit call results into potentially aliased slots. This allows us to properly mark indirect return slots as noalias, at the cost of requiring an extra memcpy when assigning an aggregate call result into a l-value. It also brings us into compliance with the x86-64 ABI.
    • 8c7e67d : Don't warn on category implementing a method, if declated method in the class belongs to a synthesized property getter/setter. // rdar://10014946
    • b5af843 : Eliminate the -chained-pch flag and all of the frontend and libclang options associated with it. Chained PCH is the only way to build a PCH file that includes another PCH file
    • 9293ba8 : Remove the Chaining argument from the PCH/module generator. It's no longer used
    • 467dc88 : Introduce a -cc1 option "-emit-module", that creates a binary module from the given source. -emit-module behaves similarly to -emit-pch, except that Sema is somewhat more strict about the contents of -emit-module. In the future, there are likely to be more interesting differences.
    • ca4c40a : objc - fix a bug exposed by my recent decl context changes. // rdar://10015110
    • 6f155de : [libclang] Fix getting a cursor that points inside tag definition that is part of a type specifier.
    • 46c03c3 : Clean up the reloading of identifier information following the load of a top-level module. This code is still horrible and should go away, but we're not there yet.
    • f249bf3 : Preload source location entries as soon as we've loaded a particular AST file, rather than waiting until we finish loading the top-level AST file.
    • f09530f : Reverse r138567 until a buildbot failure is investigated.
    • c69a292 : Move file validation in the ASTReader from "top of chain" validation to "when loading a particular module" validation, since it was only validating local information anyway. This shouldn't change anything.
    • 98339b9 : Factor the Module and ModuleManager classes out into separate headers and .cpp files, since ASTReader.cpp was getting way too large. No functionality change.
    • 7c2349b : Use stronger typing for the flags on AggValueSlot and require creators to tell us whether something needs GC barriers. No functionality change.
    • 03c107a : Make Lexer::ComputePreamble accept a LangOptions parameter, otherwise it may be out-of-sync how a file is compiled. Patch by Matthias Kleine!
    • af6fbe4 : 80-column and spacing.
    • e7a2764 : Teach -Wunreachable-code about dead code caused by macro expansions. This should suppress false positives resulting from 'assert' and friends.
    • d10a381 : Switch ASTReader::GetHeaderFileInfo() from a walk over the module chain to a proper search.
    • b95cd09 : Switch the forward walk through the module chain over to a depth-first search in ASTReader::ReadPreprocessedEntities().
    • 90dedc8 : Fixes a typo in my last patch.
    • d8e987b : objc -arse: Use DeclGroup for forward class declarations; as in @class foo, bar. More cleanup to follow.
    • fab83b5 : [driver] Do not add -kext to the link command line when compiling with -fapple-kext. Fixes rdar://problem/10013310. Reverts rdar://problem/7809940.
    • 1b59e9c : Remove a bogus assertion from the AST reader, which assumed that redeclarations of a particular entity would occur in source order. Friend declarations that occur within class templates (or member classes thereof) do not follow this, nor would modules. Big thanks to Erik Verbruggen for reducing this problem from the Very Large Qt preamble testcase he found.
    • 3d15ab8 : Use the module manager's search facility to look for methods with a given selector, rather than walking the chain backwards. Teach its visitor how to merge multiple result sets into a single result set, combining the results of selector lookup in several different modules into a single result set.
    • db92bb6 : [analyzer] Move the leak bugs from CFRefCount to RetainReleaseChecker, with a level of indirection to handle GC vs. non-GC.
    • eacd2b4 : [analyzer] MacOSKeychainAPIChecker: Cleanup AllocationState structure.
    • 58fd97a : Add support for Microsoft __ptr32 keyword. Patch by Chris Cudmore!
    • d6334e1 : [analyzer] Move the easy bug types from CFRefCount to RetainReleaseChecker.
    • 6b7aad9 : [analyzer] MacOSKeychainAPIChecker: Add the custom BugReport visitor(which highlights the allocation site) to all the relevant reports within the checker.
    • b6cfc09 : [analyzer] Move the RetainSummaryManager from CFRefCount to RetainReleaseChecker.
    • 045c842 : blocks - capturing logic of byref block variable's expression statement initializer makes safe assumption when a substatement is encounterred (with a fix me).
    • c318659 : [analyzer] Better fix for the "missing return" error, from Ted.
    • 359bd07 : [analyzer] Silence another incorrect warning ("control reaches end of non-void function")
    • 4f227aa : [analyzer] Remove experimental FIXME that never actually applied to the code in trunk.
    • 2058956 : [analyzer] CFRefReport and friends no longer depend on CFRefCount.
    • 203ba05 : Remove long-dead FIXME
    • 5eb7d82 : [analyzer] Do not use references in std::pair.
    • c266de9 : Don't force the complete deserialization of the visible-declarations table when serializing an AST file. This was a holdover from the days before chained PCH, and is a complete waste of time and storage now. It's a good thing it's useless, because I have no idea how I would have implemented MaterializeVisibleDecls efficiently in the presence of modules.
    • e94cb98 : [analyzer] Unbreak the release buildbot.
    • 851c75a : Introduce a depth-first search of modules into the module manager, which supports both pre-order and post-order traversal via a visitor mechanism. Use this depth-first search with a post-order traversal to give predictable ordering semantics when walking all of the lexical declarations in the translation unit.
    • bba43ef : Follow up to r138470 (Add PNaCl TargetInfo). I've occasionally submitted wrong patch.
    • 9840111 : [analyzer] MacOSKeychainAPIChecker: Provide reacher diagnostic trace by pointing to the allocation site when reporting a leak.
    • f95b19d : [analyzer] Silence an (incorrect) uninitialized variable warning, caught by Cameron.
    • 0a61437 : [analyzer] Copy GC mode setting from CFRefCount to RetainReleaseChecker in preparation for getting rid of CFRefCount.
    • c4b5582 : Silence 'may be used uninitialized' warnings.
    • 1492426 : [analyzer] Allow checker writes to specify that no region should be accosiated with the report. (Useful when we report an error on endOfPath or deadSymbols, when the range of the last expression might have nothing to do with the error.)
    • ef05abd : Add PNaCl TargetInfo.
    • bd85b13 : [analyzer] Remove unused DoNothingByRef and the special case for CFDictionaryCreate.
    • 0d95f77 : In the AST reader, switch name lookup within a DeclContect over to the module DAG-based lookup scheme. This required some reshuffling, so that each module stores its own mapping from DeclContexts to their lexical and visible sets for those DeclContexts (rather than one big "chain").
    • 9c083b7 : [analyzer] Slightly clean up the fix in 138432, so that it doesn't depend on the relative ordering of path-sensitive and path-insensitive checks. Still not ideal, but I think a real fix would require infrastructure that doesn't exist yet.
    • 940b97f : Thread safety: Fix a few typos in last commit -- use LockID instead of Lock in comments and start a couple methods with a lowercase letter
    • a6b4045 : Match LLVM change: TargetRegistry and TargetSelect have been moved to Support.
    • 84c05e3 : Reset FirstID (first diagnostic's file ID) to allow for invocations of the VerifyDiagnosticsClient on several input files.
    • 1ab51c7 : [analyzer] Fix a Heisenbug concerning object lifetimes with a hack. Hopefully a better fix coming soon. See comment for more details.
    • 1bb094f : [analyzer] Reapply 138390 "Clean up unused bits of CFRefCount", reverted in 138405. Ended up unrelated to any problems.
    • 0fe62f8 : [analyzer] Fix potential crasher with RAII. No functionality change. (No test because this particular circumstance requires an impossible series of events, but this is future-proofing.)
    • 35c8695 : [analyzer] Reapply 138382 and 138388 (reverted in 138419 and 138420). The issue seems to have been with the uninitialized variable fixed in 138424; a fix for another Heisencrasher coming soon.
    • 5337612 : [analyzer] Correctly initialize a variable and hopefully fix crashes.
    • 3f7eb9a : Add testcase for r138411
    • f2be652 : Revert "[analyzer] Cleanup: Move temporary declarations of CFRefCount variables closer to their uses. No functionality change."
    • f21e2b4 : Revert "[analyzer] Make CFRefBug and CFRefReportVisitor not dependent on CFRefCount. Unfortunately, CFRefReport still is. No functionality change."
    • 736a9c2 : Make constant aggregate constant initializers private linkage. After talking with John making this the case for all of these is the right way to go.
    • 6cf0ed0 : [analyzer] MacOSKeychainAPIChecker: Add reasoning about functions which MIGHT deallocate the memory region allocated with SecKeychain APIs. Specifically, when the buffer is passed to CFStringCreateWithBytesNoCopy along with a custom deallocator, which might potentially correctly release the memory.
    • 31e1028 : [analyzer] MacOSKeychainAPIChecker: Retrieve the memory region which we are tracking even when it's no longer a SymbolicRegion, for example, when it is cast to char*.
    • dd6060e : Move creation of the deallocation mismatch report into a separate function for future reuse.
    • c6fad60 : Whitespace and 80-col cleanup.
    • cc075e4 : objc - fix up the builtin type for objc_assign_ivar. // rdar://9362887.
    • 426344d : Fix _mm256_shuffle_ps mask! Example, for mask=203, Instead of: i32 3, i32 2, i32 8, i32 11, i32 3, i32 6, i32 12, i32 15 generate: i32 3, i32 2, i32 8, i32 11, i32 7, i32 6, i32 12, i32 15
    • 0f3b4ca : Start reworking -Wunreachable-code. The original analysis had serious flaws with how it handled SCC's of dead code, or simply having false negatives by overly suppressing warnings.
    • f0e71ae : CFG: record set of C++ 'try' dispatch blocks, which could be of interest to various analyses (e.g., reachability).
    • f1d10d9 : Constify the result of CFGStmt::getStmt().
    • 8ed5579 : Add 'const' version of CompoundStmt::children().
    • b1793a0 : Revert "[analyzer] Clean up unused bits of CFRefCount."
    • e1f5490 : Whitespace.
    • f40fd6b : Refactor and fix checking for initialization of flexible array members. The old version had the checks scattered across the code, missed some checks, and had a couple nasty bugs in existing checks.
    • 6886a92 : [analyzer] Clean up unused bits of CFRefCount.
    • a5cf92d : Right now this requires asserts.
    • e3fb7e4 : [analyzer] Make CFRefBug and CFRefReportVisitor not dependent on CFRefCount. Unfortunately, CFRefReport still is. No functionality change.
    • d02b4af : [analyzer] Cleanup: Move temporary declarations of CFRefCount variables closer to their uses. No functionality change.
    • d7cb46c : Remove one SourceManager::isInFileID overload and use isOffsetInFileID for the other.
    • b6c465e : Amend r138129 (reduction of SLocEntries) which introduced performance regression due to increased calls to SourceManager::getFileID. (rdar://9992664)
    • 499ea55 : Introduce SourceManager::isInSLocAddrSpace and use it in TokenLexer instead of isInFileID since it is a bit more efficient.
    • 5d579e7 : Rename SourceManager::isBeforeInSourceLocationOffset - isBeforeInSLocAddrSpace.
    • c0069d8 : TokenLexer::getExpansionLocForMacroDefLoc doesn't need to return an invalid SourceLocation.
    • f8c5065 : In Lexer::isAtEndOfMacroExpansion use SourceManager::isInFileID and avoid the extra SourceManager::getFileID call.
    • 984e42c : Move a couple of SourceManager functions out-of-line; no functionality change.
    • ec9ef85 : [analyzer] Move function retain-count effect summary log from CFRefCount to RetainReleaseChecker, and then explicitly provide the summary log when creating CFRefReports. No functionality change.
    • 540dda6 : Fix regression in -Wuninitialized involving VLAs. It turns out that we were modeling sizeof(VLAs) incorrectly in the CFG, and also the static analyzer. This patch regresses the analyzer a bit, but that needs to be followed up with a better solution.
    • e0a5d32 : [analyzer] Move helper method Update from CFRefCount to RetainReleaseChecker. No functionality change.
    • dbff1a0 : Cleanup to use helper.
    • 629f118 : Remove function parameter which always used the default value.
    • 8d22863 : [analyzer] Move helper method handleAutoreleaseCounts from CFRefCount to RetainReleaseChecker. No functionality change.
    • f53e8c7 : [analyzer] Move ReturnStmt retain-count analysis from CFRefCount to RetainReleaseChecker. Tweak CFRefReport to reflect that fact that ReturnStmt checks are pre-statement, not post-statement. No intended functionality change.
    • 38f17d6 : [analyzer] Move symbol death leak analysis from CFRefCount to RetainReleaseChecker.
    • 3ac1fbc : Thread-safety analysis: adding in a basic lockset tracking system. This system flags an error when unlocking a lock which was not held, locking the same lock twice, having a different lockset on each iteration of a loop, or going out of scope while still holding a lock. In order to successfully use the lockset, this patch also makes sure that attribute arguments are attached correctly for later parsing.
    • f857186 : Add support for a verifier to the driver. Currently only verifies debug output on darwin so is hard coded there.
    • 5033be1 : checking for __block variable captured by given stmt expression, recursively walk down all substatements of the stmt expression. // rdar://10001085
    • 2fef111 : enable -fstack-protector on 10.5 for usermode binaries by default.
    • 4df54fe : [analyzer] Only allocate retain summaries for interesting functions/messages. This is a minor saving of memory but doesn't seem to cost any performance.
    • 903d6dc : Fix an incorrect note.
    • b9dbab1 : block IRgen - Fixes a crash when determining if given block variable is captured by a given statement expression. // rdar://10001085
    • 6fa7dbe : [analyzer] Rename CFRefCount's evalSummary method to evalCallOrMessage, since it no longer, uh, evaluates call summaries.
    • 2873aee : Make sure we don't inline functions marked with __attribute__((naked)). rdar://problem/9973228
    • 294396b : [analyzer] Migrate the handling of retain-count-related RetEffects and ArgEffects from CFRefCount to RetainReleaseChecker. No intended functionality change.
    • 7bbd166 : [analyzer] MacOSKeychainAPIChecker: Users of KeyChain API often use free() to deallocate the password. Catch this error explicitly and generate the error message at the place where free() is called.
    • 2f64cfe : objc refactoring - minor clean up.
    • 7f2531c : Static Analyzer Diagnostics: Allow checkers to add ExtraDescriptiveText, now renamed into ExtraText, to the diagnostic without subclassing BugReport.
    • 7939418 : objc - use existing API for temporary switch of objc's decl context.
    • 4eb14ca : Do not perform check for missing '[super dealloc]' under ARC as calling -dealloc is illegal in that mode.
    • edf4dae : Clean up the CFRefBugReport - remove the members, which got moved to the CFRefReportVisitors.
    • 70c7b10 : Don't warn on varaidic macros in C++0x mode.
    • 58a7649 : objc - minor comment fix up and cleanup.
    • 9735c5e : objc - Simplify switing objc decl context by using a context switching object.
    • 9a1ecf0 : Warn on missing [super dealloc] calls.
    • 0124839 : Fix a crash-on-valid that has been here for a very long time:
    • 80f7753 : objc- checking for objc decl context range is unreliable and subject to change. Check for equality instead.
    • cb8061e : Fix a bug in objc @encoding of C++ classes.
    • a28948f : Restore patch I reversed in r138040. Known buildbot failures are resolved.
    • ec5bc81 : Fix typo.
    • 21032df : Fix gcc build.
    • d9d2b67 : Boost the efficiency of SourceManager::getMacroArgExpandedLocation.
    • 76c506f : [analyzer] Migrate the aliasing effects of CFRetain and CFMakeCollectable from CFRefCount to RetainReleaseChecker. No intended functionality change.
    • df0fcdd : [analyzer] Remove FIXME; Ted reminded me that -init is not guaranteed to return its receiver and pretending that it does won't actually buy us anything. (Comment change only.)
    • 500abad : [analyzer] Migrate return value handling from CFRefCount to ExprEngine. This seems to result in a minor performance hit, but I think that will go away again once we eliminate TransferFuncs from function calls entirely.
    • 7df1234 : [analyzer] Replace calls to getNameAsString() with StringRef equivalents.
    • d9f5a70 : Fix compile on platforms that don't implicitly include stdarg.h here.
    • 2f9a66d : [analyzer] RetainReleaseChecker always wants region change updates. There's no need for a flag, at least not right now.
    • ab027fd : Fix indentation.
    • e62e87b : [analyzer] Move handling of hardcoded noreturn ("panic") methods from CFRefCount to NoReturnFunctionChecker. No functionality change intended.
    • e1ffb15 : test/lit.cfg: Enable "crash-recovery" tests on Win32 hosts. CrashRecoveryContext supports Win32 since r138199.
    • 6b0baf9 : Typo spotted by Ivan Krasin.
    • c44e941 : Remove this test. It requires C++ standard library headers, which we'd like to avoid within the Clang test suite, it doesn't verify the output at all so it only servers as a test that Clang doesn't crash, and finally all it does is declare a function that returns a vector and call it. Probably the biggest thing being tested here is Clang's parsing of the vector template, and we have lots of good template parsing tests. We don't need another in codegen.
    • f8b5aae : [analyzer] Handle reads of ObjCPropertyRefExprs implicitly in Environment. No need to bind an explicit value and create a new node.
    • d203c02 : [analyzer] Simplify ExprEngine::VisitBinaryOperator() by removing recursive visit to subexpressions (which is no longer needed).
    • 294fd0a : Start partitioning ExprEngine.cpp into separate .cpp files that handle different parts of the analysis (e.g., analysis of C expressions, analysis of Objective-C expressions, and so on).
    • 5f76431 : Rename CXXExprEngine.cpp to ExprEngineCXX.cpp.
    • 3526e47 : test/CodeGenCXX/2003-11-25-ReturningOpaqueByValue.cpp: Mark XFAIL: win32.
    • 0c02ada : Make the loading of multiple records for the same identifier (from different modules) more robust. It already handled (simple) merges of the set of declarations attached to that identifier, so add a test case that shows us getting two different declarations for the same identifier (one struct, one function) from different modules, and are able to use both of them.
    • 90115a3 : Clean out some minor cruft in the AST reader; no functionality change.
    • 211f6e8 : Introduce a module visitation function that starts at the top-level modules (those that no other module depends on) and performs a search over all of the modules, visiting a new module only when all of the modules that depend on it have already been visited. The visitor can abort the search for all modules that a module depends on, which allows us to minimize the number of lookups necessary when performing a search.
    • 23f395e : Static Analyzer Diagnostics: Move the responsibility for generating the endOfPath diagnostic piece from BugReport to BugReporterVisitor. Switch CFRefCount to use visitors in order to generate the endOfPath piece.
    • e0e2933 : Remove dead code.
    • 7be2f46 : Remove XFAIL/XTARGET since this is passing on the other bots.
    • 89a179b : Migrate, update and FileCheckize:
    • a1032cc : Migrate, update and FileCheckize:
    • 7bc54e5 : Migrate, FileCheckize and update:
    • baa15d6 : Migrate and update:
    • f9a642f : Remove this file, it's not much of a test and string headers cause problems on windows.
    • aeac10e : Migrate, FileCheckize and update:
    • 2368b6a : Migrate, FileCheckize and update:
    • 51abac1 : Modify the check line to be happier on windows.
    • 56a89ea : Remove dead file.
    • 16d482e : Migrate, FileCheckize and update:
    • c0b850c : Add new test. Remove one outdated test.
    • dc757b0 : Static Analyzer Diagnostics: Switch CFRefCount to using the new visitor API. BugReport no longer needs to inherit from BugReporterVisitor.
    • 2ba4fde : Try removing xfail and xtarget to see if this brings back a couple of bots.
    • 3b20b9e : Migrate 2007-01-02-UnboundedArray.cpp from llvm/test/FrontendC++.
    • 335552e : Migrate:
    • d60a34a : For assigning SourceLocations to macro arg tokens, reserve a single SLocEntry for tokens that are lexed consecutively from the same FileID, instead of creating a SLocEntry for each token. e.g for
    • ec3b538 : Rename TokenLexer::getMacroExpansionLocation - getExpansionLocForMacroDefLoc, no functionality change.
    • 54232ad : Refactor common functionality into SourceManager::getFileIDSize, no functionality change.
    • 50bbc16 : Static Analyzer Diagnostics: Kill the addVisitorCreator(callbackTy, void*) API in favor of addVisitor(BugReporterVisitor*).
    • e645278 : Remove 2008-10-29-WrongOffset.cpp since it requires a header file on all platforms.
    • 97b02c5 : Migrate 2007-10-01-StructResize.cpp from llvm/test/FrontendC++.
    • 44f609c : Migrate 2008-01-12-VecInit.cpp from llvm/test/FrontendC++.
    • 3d88380 : Migrate 2008-05-07-CrazyOffsetOf.cpp from llvm/test/FrontendC++.
    • 7b9bb72 : Migrate 2008-10-29-WrongOffset.cpp from llvm/test/FrontendC++.
    • 723665f : Migrate 2009-03-17-dbg.cpp from llvm/test/FrontendC++.
    • f54a225 : Migrate 2009-04-23-bool2.cpp from llvm/test/FrontendC++.
    • e90e9c3 : Remove this test. It's failing and it's not that good of a test.
    • 28e7d2a : Migrate 2009-06-16-DebugInfoCrash.cpp from llvm/test/FrontendC++.
    • c0791f1 : Migrate 2009-07-16-PrivateCopyConstructor.cpp from llvm/test/FrontendC++.
    • 59de683 : Migrate 2009-08-05-ZeroInitWidth.cpp from llvm/test/FrontendC++.
    • 3592f64 : Migrate 2009-07-16-Using.cpp from llvm/test/FrontendC++.
    • 07881a2 : Migrate 2009-08-11-VectorRetTy.cpp from llvm/test/FrontendC++.
    • ea6de30 : Migrate 2009-09-09-packed-layout.cpp test from llvm/test/FrontendC++.
    • 2c56377 : Migrate 2009-10-27-crash.cpp from llvm/test/FrontendC++.
    • 8a8d6d8 : Migrate 2009-12-23-MissingSext.cpp from test/FrontendC++ and modify for sext - and difference.
    • dcf3c0f : Remove another unused function from ModuleManager. We have no notion of a 'last' module any more
    • a3a0cf0 : Remove unused function ModuleManager::exportLookup()
    • 1999c7c : Do not depend on the standard library on the system. Replace the #include with the relevant section of libcxx.
    • 5c5218e : Improve the correctness and accuracy of the message for -Wdynamic-class-memaccess
    • bc03aea : objc-arc: @property definitions should default to (strong) when not specified. // rdar://9971982
    • e6f07f5 : Revers r138040. Need to look at a few buildbot failures.
    • 3dbf2f5 : objective-c: Bring objective-c handling of decl context to modernity. Instead of passing down individual context objects from parser to sema, establish decl context in parser and have sema access current context as needed. I still need to take of Doug's comment for minor cleanups.
    • 00fd773 : Rename -Wstrl-incorrect-size to -Wstrlcpy-strlcat-size. This warning really is just specific to strlcpy and strlcat.
    • 7d23b4a : Reflow code. No functionality change.
    • 0473cd5 : Warn about and truncate UCNs that are too big for their character literal type.
    • fac4ece : Teach ModuleManager::addModule() to check whether a particular module has already been loaded before allocating a new Module structure. If the module has already been loaded (uniquing based on file name), then just return the existing module rather than trying to load it again.
    • 3b030a2 : Fix a memory leak in the analyzer - BugReports didn't get freed. Plus, remove invalid assert from the destructor which wasn't called previously due to the leak.
    • 3d095fe : Fix the rest of the indent goofiness here.
    • 47eb2b6 : Fix an egregious formatting goof.
    • 88b7cf0 : Add a completely hacky workaround for pch kext files with different extensions when falling back to cc1plus for our compile.
    • 8f74622 : Enhance -Wstrl-incorrect-size to not report a FIXIT for destinations that are flexible arrays or have size 1.
    • 8e6431a : Static Analyzer Diagnostics: Move custom diagnostic visitors from BugReporterContext to BugReport.
    • 47695c8 : [libclang] Remove NestedNameSpecifierVisit, as Clang says that this code is dead.
    • d2c8972 : Don't accept a typo correction if the corrected identifier is the same as the uncorrected identifier. Fixes a problem pointed out by Eli.
    • 3366582 : Remove main() *errors* from warning group.
    • bd5da9d : Reapply r137903, but fix the definition of size_t in the test case to use __SIZE_TYPE__ (and hence be portable).
    • 5c5f03e : [libclang] Support code-completion inside macro arguments.
    • 870d1fe : Temporarily revert r137925 to appease buildbots. Original commit message:
    • 647a751 : Add a test for checking that custom diagnostic visitors are working.
    • 5161163 : Rework DiagnoseInvalidRedeclaration to add the ability to correct typos when diagnosing invalid function redeclarations.
    • a676379 : [libclang] Annotate correctly macro argument tokens.
    • 8722a5d : Use StringRef, rather than C string APIs.
    • 1f89b40 : Fixes traversal of class template nodes on template instantiations. Also fixes a spelling error.
    • 3bd9aa4 : Add support for MSVC __unaligned attribute. Necessary to parse MSVC headers in 64-bit mode (ie: when _M_IA64 or _M_AMD64 is defined)
    • 80f5b16 : Always mark friend function declarations in class templates as implicitly instantiable, even if we don't see a body on the friend function declaration. The body may simply have not yet been attached. This fixes PR10666.
    • a4c189f : Teach ModuleManager::addModule() to check whether a particular module has already been loaded before allocating a new Module structure. If the module has already been loaded (uniquing based on file name), then just return the existing module rather than trying to load it again.
    • 10bc00f : Keep track of which modules have been loaded directly (e.g., via -import-module) vs. loaded because some other module depends on them. As part of doing this, pass down the module that caused a module to be loaded directly, rather than assuming that we're loading a chain. Finally, write out all of the directly-loaded modules when serializing an AST file (using the new IMPORTS record), so that an AST file can depend on more than one other AST file, all of which will be loaded when that AST file is loaded. This allows us to form and load a tree of modules, but we can't yet load a DAG of modules.
    • 1cb4f66 : Revert r137903, "Add experimental -Wstrlcpy-size warning that looks to see if the size argument for strlcpy/strlcat is the size of the *source*, and not the size of the *destination*. This warning is off by default (for now)."
    • 7e9e74b : No seriously, remove the unsupported warning options.
    • f19eef8 : Fix a regression form r137894. Make sure the custom BugReporterVisitors get registred as they were in EnhancedBugReport. Would be good to add a test for this.
    • 5440bfa : Remove the last FIXMEs on -Wunused-comparison since it got moved to entirely use the existing -Wunused-value infrastructure. This also fixes a few missed cases for -Wunused in general.
    • f01f847 : Fix off by one.
    • 04225c1 : [driver] Implement in a more table-like manner and add many more warning options that aren't handled by llvm-gcc on fallback. Enhancement to rdar://9964354
    • f391fa7 : Add documentation on -Weverything.
    • 1e473cc : Implement '-Weverything', which enables all warnings except those explicitly mapped to be ignored.
    • 1b2d536 : For the MacroExpands preprocessor callback, also pass the SourceRange of expansion (for function macros it includes the right paren).
    • 81ae902 : Add some more options that aren't handled by llvm-gcc on fallback.
    • 90c8802 : [driver] Don't generate diagnostics (i.e., preprocessed source) if reading from stdin. This allows Eli and the like to continue with their debugging trickery without loss of limb (or car) on my part. :)
    • 292772c : "-mavx" should also enable all other SSE levels.
    • b0a58cd : Downgrade "err_init_list_variable_narrowing" into a warning in Microsoft mode even if c++0x is enabled. This necessary to parse MSVC code in C++0x mode.
    • 4b53117 : Add experimental -Wstrlcpy-size warning that looks to see if the size argument for strlcpy/strlcat is the size of the *source*, and not the size of the *destination*. This warning is off by default (for now).
    • e7c4c4c : Add more comments for BugReport.
    • b7530a4 : Remove DiagBugReport by pulling it into its parent BugReport.
    • 3060178 : Fix else style. No functionality change intended.
    • e172e8b : Remove EnhancedBugReport and RangedBugReport - pull all the extra functionality they provided into their parent BugReport. The only functional changes are: made getRanges() non const - it adds default range to Ranges if none are supplied, made getStmt() private, which was another FIXME.
    • 59f9b26 : Fix typo.
    • baf82b0 : [libclang] Workaround potential race condition with code completion AllocatedResults being freed after a CXTranslationUnit.
    • 0a7efe1 : Reorganize the return-type vs. expression checking code in block returns; no functionality change.
    • 5d6a4ad : Somehow I fouled up this test.
    • 28fc50c : Remove an unnecessary assignment (to InstFromD). Caught by the static analyzer!
    • d963c37 : Gather cleanups correctly in block return statements. Thanks to Ted for finding this with magic tools.
    • 6704429 : [analyzer] Migrate assumption and binding handling from CFRefCount to RetainReleaseChecker. This is mostly a textual move and required no supporting changes. No functionality change intended.
    • 07c682a : Fix incorrect code indentation and silence dead store warning due to idiomatic code.
    • e95b919 : In the AST file format, eliminate the CHAINED_METADATA record. Instead, all AST files have a normal METADATA record that has the same form regardless of whether we refer to a chained PCH or any other kind of AST file.
    • 012614e : Fix a handful of dead stores found by Clang's static analyzer. There's a bunch of others I haven't touched.
    • 38ca02e : Add a bit more comments to the BugReporter and friends.
    • 94fe9ee : [libclang] Implicit objc methods are skipped, no need to check isSynthesized.
    • 75cf3e8 : Mark objc methods that are implicitly declared for properties (not user-declared) as implicit. This results in libclang ignoring such methods.
    • f1d5948 : Fix -ferror-limit= to properly emit notes following the last error messages. Fi from David Blaikie, tests from Nikola Smiljanic!
    • cc0de8c : Fix iterator end for r137842.
    • 285f9a2 : [driver] Clang doesn't support -mkernel/-fapple-kext for i386, so it's automatically invoking llvm-gcc's cc1plus, which doesn't support all options supported by Clang. Therefore, filter out unsupported options. rdar://9964354
    • cb6239a : Add additional path to Linux toolchain. Patch by Will Dietz. PR10690.
    • 236a537 : Add Gentoo gcc 4.3.4 include paths
    • 6b04623 : [python] Fix bug of the SourceLocation binding. Patch by Anders Waldenborg!
    • 2312f5f : [python] Add test_type.py by Anders Waldenborg, which I forgot to commit in r137797.
    • 9b10683 : Whitelist operator== and operator!= as valid for unused value warnings, even when overloaded and user-defined. These operators are both more valuable to warn on (due to likely typos) and extremely unlikely to be reasonable for use to trigger side-effects.
    • ec8058f : Treating the unused equality comparisons as something other than part of -Wunused was a mistake. It resulted in duplicate warnings and lots of other hacks. Instead, this should be a special sub-category to -Wunused-value, much like -Wunused-result is.
    • 579a052 : Fix this test which had encoded the typo fixed in r137814.
    • 50bf68f : Don't suggest assignment in implausible situation. We still warn, as the code is very likely to be buggy, but its going to require more significant changes on the part of the user to correct it in this case.
    • 9d8eb3b : Introduce a new warning, -Wtop-level-comparison. This warning is a complement to the warnings we provide in condition expressions. Much like we warn on conditions such as:
    • 8a01087 : Hook up -W[no-]analyzer-incompatible-plugin to new warning, and unbreak buildbot.
    • b7b0608 : Fix typo.
    • a8fd0bc : [analyzer] Add a warning for an incompatible plugin version.
    • 6875325 : Silence compiler warnings by casting object pointers to function pointers via intptr_t.
    • 26fb4cb : Don't use BuiltinBug in analyzer plugin example.
    • 8e24049 : [analyzer] Add some documentation for the new analyzer plugin infrastructure.
    • 01a429a : [MSVC] Fix a warning C4334 "'operator' : result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?)".
    • 77a33a7 : [analyzer] Add basic support for pluggable checkers.
    • bc84532 : Add serialization support for ClassScopeFunctionSpecializationDecl.
    • d7933e6 : [python] Add support for CXType to python bindings. Patch by Anders Waldenborg!
    • 4b43b30 : [libclang] Make clang_getCursor able to handle locations that point inside macro arguments.
    • 0e87062 : Make Lexer::GetBeginningOfToken able to handle macro arg expansion locations.
    • ac836e4 : Introduce SourceManager::getMacroArgExpandedLocation function.
    • 37e59a1 : Make SourceManager::isBeforeInTranslationUnit handle macro locations correctly.
    • d21683c : [PCH] When writing out ExpansionInfo, make sure we don't lose track if it's a macro arg expansion or not.
    • b33c19f : Switch this code to use the more idiomatic 'dyn_cast' pattern.
    • 4cbac2a : Migrate test from llvm/test/FrontendC++.
    • 1c8346c : Migrate from llvm/test/FrontendC++ and FileCheckize.
    • 02394ff : Migrate from llvm/test/FrontendC++.
    • 6ddb040 : Migrate test from llvm/test/FrontendC++ and FileCheckize.
    • ffe57aa : Migrate test from llvm/test/FrontendC++.
    • 2b94c69 : Migrate from llvm/test/FrontendC++.
    • b7f124c : Migrate from llvm/test/FrontendC++.
    • 61329d6 : Migrate test from llvm/test/FrontendC++.
    • b571582 : Migrate from llvm/test/FrontendC++.
    • b06cf89 : Migrate varargs.cpp from llvm/test/FrontendC++.
    • 41f001f : Migrate weak-external.cpp from llvm/test/FrontendC++.
    • 32e48a3 : Migrate x86-64-abi-sret-vs-2word-struct-param.cpp from llvm/test/FrontendC++ and FileCheckize.
    • 230768d : Migrate thunk-linkonce-odr.cpp from llvm/test/FrontendC++.
    • 5bd0495 : [analyzer] teach ExprEngine about loads from static C++ class fields. Fixes rdar://problem/9948787.
    • 08b8653 : [analyzer] Overhaul of checker registration in preparation for basic plugin support. Removes support for checker groups (we can add them back in later if we decide they are still useful), and -analyzer-checker-help output is a little worse for the time being (no packages).
    • fe88395 : Robustify test, there is no need to check metadata number which can change.
    • f391dbe : Finalize debug info after all deferred globals are emitted.
    • b1a1950 : MacOSKeychainAPIChecker: Turn it on by default.
    • 09190be : Update createMCAsmParser() to match r137735.
    • f0c7fe5 : MacOSKeychainAPIChecker: Do not report double allocation if first allocation returned an error.
    • 3b9e8e4 : [analyzer] Enhance ConditionVisitor to handle arbitrary ValueDecls in binary expressions, and also handle inverting the order of comparison when the named decl appears on the RHS.
    • a47027b : CMake: "clang-test" may not depend on check.deps.
    • 4ee7c9c : [analyzer] fix operation inversion calculation in ConditionVisitor.
    • 681bc11 : [analyzer] Enhance ConditionVisitor to understand eagerly evaluated (simple) binary conditions, and teach it to only focus on constraint changes.
    • 6c7511d : [analyzer] add ExprEngine::getEagerlyAssumedTags() to allow externally querying of "eagerly assumed" expressions.
    • 86b39f2 : [analyzer] Remove PostStmtCustom ProgramPoint. It can be represented using tagged PostStmts.
    • 2799c71 : Fix tests for non-darwin hosts.
    • f25a162 : Move test from llvm/test/FrontendCXX and update.
    • 7d458b0 : MacOSKeychainAPIChecker: The security API/memory leak checker should always generate regular nodes instead of sink nodes.
    • 2fde35d : Add ProgramState.cpp.
    • ae160f8 : Add missing header files.
    • 4111fef : Use new DIBuilder::finalize() at the end to wrap up debug info encoding for a translation unit.
    • d946bda : FileCheckize this test.
    • 427964e : [libclang] Require explicit cursor visitation for all TypeLocs (compilation will fail if a TypeLoc kind is not handled) and handle DecltypeTypeLoc and InjectedClassNameTypeLoc.
    • 041087c : 'pure' and 'const' functions should also be marked nounwind. Migrate test over from llvm/test/FrontendC++ and update others to account for the change.
    • b917e64 : Take 2 (take 3?) at removing derelict clang.xcodeproj. All Xcode users should be using CMake, as the clang.xcodeproj is never up-to-date and cannot actually build Clang.
    • 18c66fd : Rename GRState to ProgramState, and cleanup some code formatting along the way.
    • 6db629e : Fix the buildbot test.
    • af1fc7a : Track in the AST whether a function is constexpr.
    • faef9fc : Make -findirect-virtual-calls and -fterminated-vtables aliases of -fapple-kext. Outside the driver, they were already treated that way, but the driver was not giving them the same special treatment as -fapple-kext, e.g., falling back to llvm-gcc for i386/Darwin kexts. Radar 9868422.
    • 0ac1ccc : Remove duplicate option.
    • 3422fbc : [libclang] Handle AttributedTypeLoc for cursor visitation. Fixes rdar://9535717.
    • 67f7fa4 : MacOSKeychainAPIChecker: Use llvm::SmallString instead of std::string (as per code review for r137523).
    • 9b127f3 : Add fixit notes for -Wconstant-logical-operand.
    • f20d272 : Teach reference initialization from the result of a user-defined conversion to initialize the standard conversion *after* the user-defined conversion properly. Fixes PR10644.
    • 2fd9a47 : fix typo in test.
    • 507d675 : Another typo found by Nico; Doug also warned me about it, but I didn't listen to him.
    • 0d95f0d : Fix typo.
    • ec24b0e : Fix r137086 to actually work properly in general. PR10650.
    • af0f4d0 : Implement function template specialization at class scope extension in Microsoft mode. A new AST node is introduced: ClassScopeFunctionSpecialization. This node holds a FunctionDecl that is not yet specialized; then during the class template instantiation the ClassScopeFunctionSpecialization will spawn the actual function specialization.
    • 57c43a2 : Fix "Uninitialized" warnings on g++-4.4.
    • a544aee : Reject -mkernel for i386/Darwin C++ code; fall back to llvm-gcc instead. Since -mkernel implies -fapple-kext, this just extends the current behavior for -fapple-kext to apply for -mkernel as well. Radar 9933387.
    • cc52a06 : Add support of -x objc-cpp-output, -x objc++-cpp-output to the Driver.
    • 1f7957d : Accept -x objc++-cpp-output as an alias for -x objective-c++-cpp-output
    • 7c5109b : Fix C++0x narrowing conversion errors in Clang.
    • 83bbba1 : Move handling of vget_lane/vset_lane before the code that checks the type.
    • f7ce52b : MacOSKeychainAPIChecker: Test all APIs.
    • b18d503 : [driver] Make sure to update the iterator end when erasing for Args.
    • 9c378f7 : Cleanup various declarations of 'Stmt*' to be 'Stmt *', etc. in libAnalyzer and libStaticAnalyzer[*]. It was highly inconsistent, and very ugly to look at.
    • a40b7f2 : Update clang tests for r137527.
    • 137a20b : [driver] When generating clang failure diagnostics, don't try to preprocess inputs that aren't preprocessable.
    • 20fd867 : Return the proper type for objects when given a .o extension.
    • 1ab69c5 : Document purpose of ProgramPointTag::getTagKind().
    • ca80453 : [analyzer] change "tag" in ProgramPoint from "void*" to a ProgramPointTag*.
    • 79c9c75 : MacOSKeychainAPIChecker: If the allocated data address entered as an enclosing function parameter, skip it to avoid false positives.
    • be69f60 : [driver] Refactor a bit to enable a few fixes when generating diagnostics. No functional change intended.
    • 703ffb1 : MacOSKeychainAPIChecker: Report errors earlier: on checkDeadSymbols() and clear the state after the symbol we are tracking goes out of scope.
    • 096aef9 : [analyzer] Nitpicks on Olaf's patch, which I meant to e-mail but then didn't in time. One is cleanup, the other is me being OCD about enum group nesting.
    • 864d252 : MacOSKeychainAPIChecker: There is no need to use SymbolMetadata to represent the allocated data symbol, we can just use the symbol corresponding to the SymbolicRegion. This simplifies tracking of the symbol, for example, SymbolMetadata needs to go through extra hoops to stay alive.
    • 6d0ee8d : Conversions to bool count as integer conversions for the purposes of the C++0x narrowing error.
    • 3a02b44 : metadata generated by the compiler does not include the weak attribute of a property. patch by Remy Demarest fixes it.
    • 261f5b4 : Place err_cfstring_literal_not_string_constant and warn_cfstring_truncated under "-WCFString" flag.
    • 42cd50c : Place diagnostic warn_stringcompare under the "-Wstring-compare" flag.
    • 9d9eef9 : Place warnings related to incorrect "main()" declaration under "-Wmain".
    • 8ed7253 : Add -Wtypename-missing flag for diagnostic warn_typename_missing.
    • 9697934 : [analyzer] Introduce new MemRegion, "TypedValueRegion", so that we can separate TypedRegions that implement getValueType() from those that don't.
    • 37bee67 : Fix some comments.
    • c1c2011 : switch clang to use the new-new way of creating llvm::StructType's.
    • f80b0db : Overriding the predefined Protocol isn't something that's actually done and is likely to not work well anyway; take away this unnecessary complexity.
    • 5290c80 : Revert "Fix crash in CFGBuilder involving implicit destructor calls and gotos jumping after an object was declared. Fixes PR 10620."
    • 772eeae : Switch the __int128_t and __uint128_t types over to predefined types in the AST format, which are built lazily by the ASTContext when requested.
    • b9326ec : docs/doxygen.css: Import .memitem, .memproto and .memdoc from llvm/doxygen.
    • 7a27ea5 : Switch the Objective-C 'SEL' type over to a predefined type in the AST file format, lazily generating the actual declaration in ASTContext as needed.
    • 79d6726 : Switch the Objective-C 'Class' type over to a predefined type in the AST file format, lazily generating the actual declaration in ASTContext as needed.
    • ddddd48 : De-Unicode-ify.
    • 4dfd02a : Move the creation of the predefined typedef for Objective-C's 'id' type over into the AST context, then make that declaration a predefined declaration in the AST format. This ensures that different AST files will at least agree on the (global) declaration ID for 'id', and eliminates one of the "special" types in the AST file format.
    • 634a43c : Fix a raw string literal test case to actually use a raw string literal.
    • a809447 : Fix crash in CFGBuilder involving implicit destructor calls and gotos jumping after an object was declared. Fixes PR 10620.
    • 235830b : Fix a couple raw string literal tests
    • 7b0a038 : Alignment of a va_arg must be at least as large as the ABI's minimum alignment.
    • e685848 : include/clang/Config/config.h.cmake: Reorder and reword to follow (generated) llvm/Config/config.h.in.
    • 3827e42 : Add definition of a static member of a class.
    • b7c324f : Collapse ASTWriter::WriteASTChain into ASTWriter::WriteASTCore, eliminating a pile of redundant code (and probably some bugs in the process). The variation between chained and non-chained PCH is fairly small now anyway.
    • cb9657c : Remove extra semicolons.
    • 83f06e8 : The diagtool registration system tries to use a global variable from a method called on another global variable. Use ManagedStatic to ensure that the global we register with actually exists when we need it.
    • 579ad7a : Optimizations for Dependent Symbol tracking (as per Ted's code review for r137309):
    • 6bf2b9f : In the serialized AST format, make the translation unit a "predefined" declaration that never actually gets serialized. Instead, serialize the various kinds of update records (lexical decls, visible decls, the addition of an anonymous namespace) for the translation unit, even if we're not chaining. This way, we won't have to deal with multiple loaded translation unit declarations.
    • 63ab2c5 : Fix a PCH crash bug where we kept a reference inside a DenseMap while the map was getting modified.
    • 0a20818 : scan-build: enable C++ support by default.
    • 79e610a : The current warning in -Wnull-arithmetic for comparisons between NULL and non-pointers is not very helpful. This patch will update the wording to be more helpful to users.
    • 5f95728 : When initializing a context from a particular AST file, check whether either "special" type has already been initialized. Previously, we did this check based on just the first special type (__builtin_va_list), but now we have some NULL special type entries to content with.
    • 8425126 : Add diagtool-based test where we enforce that no additional warnings can be added to Clang without a -W flag.
    • 30403a6 : The AST reader and writer don't need accessors for poking at the predefined Objective-C types
    • 01a4cf1 : Encapsulate the Objective-C id/Class/SEL "redefinition" types in ASTContext with accessors/mutators. The only functional change is that the AST writer won't bother writing the id/Class/SEL redefinition type if it hasn't been explicitly set; previously, it ended up being written as a synonym for the built-in id/Class/SEL.
    • 0aeb289 : Extended the AST importer to support ParenTypes. This is necessary to support importing certain function pointer types.
    • 89f9209 : Analyzer Core: Adding support for user-defined symbol dependencies. (For example, the allocated resource symbol only needs to be freed if no error has been returned by the allocator, so a checker might want to make the lifespan of the error code symbol depend on the allocated resource symbol.) Note, by default, the map that holds the dependencies will get destroyed along with the SymbolManager at the end of function exploration.
    • 2e4f44f : Add tests for string literal concatenation.
    • 03720fc : Raw string followup. Pass a couple StringRefs by value.
    • 22998ad : Update C++0x status page to reflect support for raw string literals.
    • 2fa4e86 : Add support for C++0x raw string literals.
    • 777d6e5 : Simplify EH control flow by observing that EH scopes form a simple hierarchy of delegation, and that EH selector values are meaningful function-wide (good thing, too, or inlining wouldn't work). 2,3d 1a hierarchy of delegation and that EH selector values have the same meaning everywhere in the function instead of being meaningful only in the context of a specific selector.
    • 75eeeb1 : Make SymbolManager comments doxygen friendly.
    • 0e89061 : Cleanup: remove CleanedSate member and GetState() wrapper from StmtNodeBuilder, not needed as of r137273.
    • db5e8cd : Cleanup: remove GetState() wrapper from ExprEngine, not needed as of r137273.
    • 6bd528b : Analyzer Core: In checkDeadSymbols checker callback, provide the state in which the symbols are not yet deleted so that checkers could inspect them. Since we are now always creating a transition in ProcessStmt(), remove the logic for adding a transition when none was generated. TODO: the extra transitions will have to be removed; more cleanups; a checker that tests teh new fucntionality.
    • 70979d4 : Refactoring of DiagnoseBitwisePrecedence() in SemaExpr.cpp to reduce code duplication.
    • a6d1e76 : When performing the lookup in the current scope for a member access to a member template, e.g.,
    • 94a9016 : [arcmt] When checking whether properties needs to be strong or not, take into account that assigning result of -retain means it should be strong. rdar://9931757.
    • 8a4bfaa : [libclang] When pointing at an objc property don't return a cursor that points at the synthesized method for the property. rdar://9771715
    • cd9ae48 : Add the new unit test that I managed to leave out of r136997 :/
    • d10f4bc : Add a test case for the divide-by-zero fix in r137234
    • 18f1697 : Make sure ptrarith_typesize is at least 1 to avoid division by zero
    • 6b8bc07 : Renamings to consistently use 'Constexpr' not 'ConstExpr' when referring to the C++0x 'constexpr' keyword.
    • 730cfb1 : objective-c: Using existing infrastructure for finding overridden methods to diagnose their type mismatch. This is a general solution for previous fixes for // rdar://6191214 and // rdar://9352731 and removes lots of duplicate code.
    • 036e81c : Expand test of C++0x [class.copymove]p15 to make sure we're actually calling the copy constructor of a base/member from an explicitly-defaulted copy constructor, rather than the default constructor
    • 136da1c : When adding the base and member initializers for an implicitly-defined special member function, make sure to classify an explicitly-defaulted copy constructor as a "copy" operation. Fixes PR10622.
    • eaf4fba : Switch a C-style cast over to a const_cast. No functionality change
    • c90df6a : Update a comment to match the recently-changed code
    • 3b6b7ac : For the availability attribute, allow a declaration to be deprecated in the same version that it is introduced. Stuff happens.
    • 4dc41c9 : Rewrite default initialization of anonymous structs/unions within a constructor. Previously, we did some bogus recursion into the fields of anonymous structs (recursively), which ended up building invalid ASTs that would cause CodeGen to crash due to invalid GEPs.
    • a19950e : Change an assert into a check. I'm pretty sure there was a point in time when this assert was valid, but it's not valid now. Also teach this code to correctly introduce function-to-pointer decay.
    • e7d0020 : Formatting.
    • 03f4861 : Revert bad change. (It may look equivalent, but it isn't.)
    • b51e031 : Thread Safety: Added basic argument parsing for all new attributes.
    • c55db3b : Cleanup; no functionality change.
    • 0815b57 : Move the creation of the record type for the state of Objective-C fast enumerations from the ASTContext into CodeGen, so that we don't need to serialize it to AST files. This appears to be the last of the low-hanging fruit for SpecialTypes.
    • 5c0d3d6 : Don't serialize the block descriptor or block extended descriptor types to AST files; they're only used by debug info generation anyway, and shouldn't ever exist in the AST anyway.
    • 45c4ea7 : Move the construction of the RecordDecl representing the runtime layout of a constant NSString from the ASTContext over to CodeGen, since this is solely CodeGen's responsibility. Eliminates one of the unnecessary "special" types that we serialize.
    • 3b8043b : Migrate the serialization of ASTContext's AutoDeduceTy and AutoRRefDeductTy from the "special types" block to predefined types. The latter behaves better when loading multiple AST files.
    • e802c61 : Place back previous order of add_subdirectory()'s to reflect build depedencies.
    • 7eab9d3 : Add libsupport to list of libraries to link into diagtool
    • 2dc651d : Add 'diagtool' to the 'tools/' directory. diagtool is a new tool (WIP) for analyzing and working with clang diagnostics.
    • 6948bc4 : Provide diag_iterator for iterating over the built-in diagnostic IDs/names in the internal table of DiagnosticIDs.
    • 38559ec : Sort CMakeLists.txt.
    • 6b63f55 : Make sure to canonicalize the argument type of a non-type template argument of enumeration type when checking template arguments. Fixes PR10579.
    • 3f86ce1 : Hand materialization of temporary expressions when emitting a scalar expression. Fxies PR10592.
    • 6b167f4 : Don't emit memcpy for copying fields of arrays of volatile elements. Use the the path that generates a loop. This fixes bogus error that clang puts out. // rdar://9894548
    • 98fdfd3 : If no -miphoneos-version-min specified, see if we can set the default based on -isysroot. rdar://9837120
    • de091ae : Fix another -Wuninitialized assertion failure (this one involving bit casts) resulting from the recent -Wuninitialized changes.
    • 5d8c062 : Add -W flag for ARC warning "performSelector may cause a leak because its selector is unknown".
    • 2112190 : objective-c: diagnose protocol inconsistencies in following situation. When a class explicitly or implicitly (through inheritance) "conformsTo" two protocols which conflict (have methods which conflict). This patch fixes the previous patch where warnings were coming out in non-deterministic order. This is 2nd part of // rdar://6191214.
    • adc7a73 : Make sure FunctionDecls aren't considered during overload resolution if there are explicit template args.
    • 7ca13ef : Silence the category-replacing-class-method warning for +load: category implementations of +load do not replace the class definition in a meaningful sense, they are run when the category loads, the +load method for class is run when the class is loaded.
    • 4bd5d09 : Fix typo so we don't use the wrong function for ending ObjC++ catch blocks (GNU runtimes)
    • aec8f45 : Improved efficiency by using iterator returned by erase, rather then restarting. Thanks to David Blaikie for pointing this out.
    • 1661d71 : Fix comment (test commit)
    • f66a3ea : Avoid fallthrough-branching to an inactive cleanup even if it's otherwise required.
    • e1f6dea : Add a __has_feature macro for generalized initializers, turned off because we don't support them yet.
    • a8e0cd8 : Do l-value conversion, etc., on a switch condition expression in ActOnStartOfSwitchStmt (i.e. before binding up a full-expression) instead of ActOnFinishSwitchStmt.
    • 993124e : [analyzer] Start sketching out a new BugReporterVisitor that inspects branches and other expressions to generate interesting path events in diagnostics.
    • 82cd2e5 : Be sure to destroy the normal entry block of a cleanup that we aren't actually going to make a normal cleanup for. Sometimes we optimistically create branches to such blocks for fixups, and then we resolve the fixup to somewhere within the cleanup's scope, and then the cleanup is actually not reachable for some reason. The process of resolving the fixup leaves us with switches whose default edge leads to the cleanup; we can replace that with unreachable, then (in many cases) turn the switch into an unconditional branch.
    • d8ee407 : Fix HTML.
    • 22d4fed : Only look at decls after the current one when checking if it's the last field in a record.
    • 7d11c3f : [analyzer] add more buffer overflow tests to show we handle sizeof(VLA) in obstruse ways...
    • f91a5b0 : [analyzer] Simplify logic for ExprEngine::VisitUnaryExprOrTypeTraitExpr to avoid recursion to subexpression.
    • bea2753 : [analyzer] Change SymbolReaper to store region roots implied by the Environment, allowing it be queried when determining if symbols derived from regions are still live.
    • 5a58c6d : KeychainAPI checker: Track SymbolMetadata instead of MemRegion in checker state so that we could clear the state on evalDeadSymbols; also track the return value.
    • 3f10e32 : Static Analyzer: Add a convinience API. Add comment.
    • 270ba59 : Revert 136984 and 136927.
    • d6c8865 : Perform array bounds checking in more situations and properly handle special case situations with the unary operators & and *. Also extend the array bounds checking to work with pointer arithmetic; the pointer arithemtic checking can be turned on using -Warray-bounds-pointer-arithmetic.
    • de91db5 : Add workaround for built va list (and other builtins) so that running ReadAST multiple times does not immediately throw an error.
    • b8fca90 : Add support for using anonymous bitfields (e.g., int : 0) to enforce alignment. This fixes cases where the anonymous bitfield is followed by a bitfield member. E.g., struct t4 { char foo; long : 0; char bar : 1; };
    • e735e2d : Wire up -import-module to run ReadAST for each module loaded.
    • c25175c : Make test/SemaObjC/qualified-protocol-method-conflicts.m always fail and mark it XFAIL. This is a stop gap until the output of the test is deterministic.
    • 8e68f1c : Let attribute((cdecl)) and company override -mrtd default calling convention.
    • c268434 : Flesh out the -Warray-bounds detection of C89 tail-padded one-element arrays. This now suppresses the warning only in the case of a one-element array as the last field in a struct where the array size is a literal '1' rather than any macro expansion or template parameter.
    • ba44712 : Finally getting around to re-working this to more accurately white-list 1-element character arrays which are serving as flexible arrays. This is the initial step, which is to restrict the 1-element array whitelist to arrays that are member declarations. I'll refine it from here based on the proposed patch.
    • d330e23 : Fixed FieldDecl source range.
    • 894e4d5 : Change the this -W flag to 'return-stack-address'.
    • 3f1661d : Output to /dev/null, not "0"
    • ca0b57e : KeychainAPI checker: Generate an error on double allocation. Pull out getAsPointeeMemoryRegion so that it could be reused.
    • cc2f30c : Extend memset/memcpy/memmove checking to include memcmp
    • 4b302d3 : The continue label in an ARC for-in loop should not involve releasing the collection.
    • ace5e76 : Have the typo correction in DiagnoseEmptyLookup properly handle template functions when performing function overload resolution.
    • 1a38b46 : objc rewriter: Fixes a rewriting of implicit casting of an integral argument to bool. // rdar://9899834
    • dd7fddb : More whitespace and naming fixup. No functionality change.
    • 844d572 : Fix a small bug where DiagnoseEmptyLookup would no longer print any messages when performing typo correction involving any overloaded template functions.
    • 42d7b2d : Specialize diag::warn_unused_call for the "warn_unused_result" attribute, so it can be controlled with a distinct flag.
    • 57fb591 : Fix assertion failure in -Wuninitialized involving no-op casts. Fixes PR 10577.
    • 62a811d : KeychainAPI checker: forgot to commit the test with r136930. This should fix the bot.
    • 270f943 : Put a few warnings into a DiagGroup. Feel free to improve the flag name!
    • 76cbb75 : KeychainAPI checker: Track additional pair of SecKeychain APIs. Also, keep exploring the transition on which a call to allocator function failed (to be able to find errors in examples like ErrorCodesFromDifferentAPISDoNotInterfere).
    • 682b7f8 : Whitespace.
    • 6a3bec3 : objective-c: diagnose protocol inconsistencies in following situation. When a class explicitly or implicitly (through inheritance) "conformsTo" two protocols which conflict (have methods which conflict). This is 2nd part of // rdar://6191214.
    • fc54016 : Formatting.
    • 8fa0a80 : Add a new libclang API to return a CXCompletionString for an arbitrary cursor, from Connor Wakamo! Addresses rdar://problem/9087798.
    • 0e7bf40 : Fix style and remove obviously redundant code.
    • ca109e5 : Clean up the debug dump for a Module, so the local-global maps are clearly called out, and add the missing local - global selector map output.
    • 272b6bc : Introduce local - global mapping for preprocessed entity IDs. This is the last of the ID/offset/index mappings that I know of. Unfortunately, the "gap" method of testing doesn't work here due to the way the preprocessing record performs iteration. We'll do more testing once multi-AST loading is possible.
    • 3b2257c : Remove the unset, unused return value of ASTReader::ReadMacroRecord(). No functionality change.
    • 6e43f3f : Additional comments and whitespace.
    • 4d9d157 : Match type names and give more info for out-of-line function definition errors.
    • 083fcb2 : KeychainAPI checker: Refactor to make it easier to add more allocator/deallocator API pairs. Add the allocator function ID to the checker state. Better comments.
    • 7338a92 : In the AST reader and writer, slide the preprocessed entity IDs by +1 so that we use ID zero as a sentinel for "no result". This matches the convention set by all of the other global IDs.
    • 837593f : Add some missing record names to the AST output. No functionality change, but llvm-bcanalyzer will be a little more informative now for AST files
    • fb2d9e0 : Implement the local - global remapping for macro definition IDs in the detailed preprocessing record. Tested with the standard "gaps" method.
    • d631d0e : The AST reader was forgetting to parse ObjCInferRelatedReturnType
    • ae7902c : Parsing of C++0x lambda expressions, from John Freeman with help from David Blaikie!
    • edc2220 : This test still hangs on win32, despite XFAIL it. Remove XFAIL.
    • 61a4e6a : Take -Wvector-conversions out of -Wmost; it needs a lot of QoI work. rdar://problem/9887979. If some open-source wants to get an idea for what QoI work I have in mind, ping me.
    • 7052909 : Add documentation for useBitFieldTypeAlignment.
    • 61a6221 : Add partial support for using anonymous bitfields (e.g., int : 0) to enforce alignment. This fixes cases where the anonymous bitfield is followed by a non-bitfield member. E.g.,
    • a5e19c6 : Emit wide string literals with the appropriate alignment. Patch by Craig Topper and Sundeep!
    • 08551b5 : KeychainAPI checker: refactor to use early exit.
    • 03826aa : KeychainAPI checker: Add basic diagnostics. Track MemoryRegion istead of SymbolicRef since the address might not be a symbolic value in some cases, for example in fooOnlyFree() test.
    • c4688ce : XFAIL arc.m codegen test on win32 because it is currently hanging. Need to investigate.
    • 0e24471 : [analyzer] Remove 'all-experimental' checker group.
    • 4ab0024 : For APCS the alignment of bitfield types is *not* respected when laying out structures. Alignment can be enforced with the use of anonymous bitfields (e.g., int :0), but this is not currently supported. Add this test case to document the current state, which will hopefully be fixed shortly.
    • e92b8a1 : Don't introduce a local - global mapping for CXXBaseSpecifiers. The IDs will never cross module boundaries, since they're tied to the CXXDefinitionData, so just use a local mapping throughout. Eliminate the global - local tables and supporting data.
    • 8d28897 : Delete one of the old tests that was ported over to Clang. The test is designed to be executed, and its output inspected for correct values, but we aren't executing it. We're just compiling it, and dumping it to /dev/null. It also isn't freestanding. If there is a desire to have this test actually stick around, complain and I'll revert this and try to add the file checks necessary to make this actually test things.
    • a56a992 : Refactoring of my last patch.
    • b18b1fd : Introduce local - global selector ID mapping into the AST reader. Tested with the usual "gaps" method.
    • 033a07e : [analyzer] rename all experimental checker packages to have 'experimental' be the common root package.
    • bddfd87 : Use the general conditional-cleanup framework instead of rolling our own, incorrectly, for releasing objects at the end of a full-expression.
    • 6ec60e0 : Introduce a local-to-global remapping for identifiers in the AST reader, and fix up the one (!) place where we were improperly mapping a local ID to a global ID. Tested via the usual "gaps" trick.
    • f0c1d8f : Improve overloaded function handling in the typo correction code.
    • 17f7bdd : [analyzer] Introduce MallocOverflowSecurityChecker, a simple flow-sensitive checker that may be useful for security auditing. This checker is currently too noisy to be on by default.
    • 7413307 : objective-c: Methods declared in methods must type match those declated in its protocols. First half or // rdar://6191214
    • 43fd938 : Fix a few typos
    • b3f8c24 : Comment the weird behavior of __has_feature(is_empty) and __has_feature(is_pod)
    • 0bbea1b : Make the type of the IntegerLiteral for bitfield paddings an actual integer, and initialise its TypeSourceInfo. The initialisation fixes a crash when using pre-compiled preambles with C++ code-completion. From Erik Verbruggen! Fixes PR10511.
    • 4192f03 : Remove stray comma
    • 0a14e4b : Introduce a constant for the number of predefined declarations in an AST file, along with an enumeration naming those predefined declarations. No functionality change, but this will make it easier to introduce new predefined declarations, when/if we need them.
    • b3de112 : give an example of a 'lowered vtable reference'
    • 496c709 : Introduce the local - global declaration ID mapping into the AST reader, to allow AST files to be loaded with their declarations remapped to different ID numbers. Fix a number of places where we were either failing to map local declaration IDs into global declaration IDs or where interpreting the local declaration IDs within the wrong module.
    • fc4b191 : In ARC, don't try to reclaim the result of a call to performSelector unless done in a context where the value is used retained.
    • 194f06a : Handle "homogeneous aggregates" as required by the ARM AAPCS-VFP ABI.
    • eb3058a : Static Analyzer diagnostics visualization: when the last location on a path is end of the function, the arrow should point to the closing brace, not the statement before it. Patch by Ted Kremenek.
    • 40f9c30 : When rewriting a call to a K&R function to lead to a well-prototyped function, be sure to drop parameter attributes when dropping their associated arguments. Patch by Aaron Landwehr!
    • 88710f2 : A couple fixes for preprocessor expressions:
    • e164c18 : Implements alignment for long long and double types in va_arg on ARM AAPCS. Patch by Jim (Ningjie) Chen.
    • cf565c5 : Update for LLVM change in PassManagerBuilder.
    • 9e6a1ca : disable array bounds overflow warning for cases where an array has a single element. This disables the warning in cases where there is a clear bug, but this is really rare (who uses arrays with one element?) and it also silences a large class of false positive issues with C89 code that is using tail padding in structs.
    • fc61427 : Fix cmake for r136702 (at least for the most part). Chandler has been kind enough to offer to investigate the underlying issue. Thanks to Doug for his assistance as well.
    • f23a0ff : objective-c rewrite: Fixes rewriting of objective-c collection statement inside a block. // rdar://9878420
    • 4068eaa : Temporarily revert parts of r136702 to make cmake builds happy. Someone with more cmake experience want to throw me a bone? :)
    • e360501 : Change the hashing function for DeclContext lookup within an AST file by eliminating the type ID from constructor, destructor, and conversion function names. There are several reasons for this change: - A given type (say, int*) isn't guaranteed to have a single, unique type ID within a chain of PCH files. Hence, we could end up hashing based on the wrong type ID, causing name lookup to fail.
    • ff8e758 : [analyzer] Drastically simplify ExprEngine::VisitInitListExpr() by assuming all initializer expressions have already been evaluated.
    • aebab72 : PR10566: Make sure codegen for deleting an pointer to an incomplete type actually works.
    • 2b81910 : When the compiler crashes, the compiler driver now produces diagnostic information including the fully preprocessed source file(s) and command line arguments. The developer is asked to attach this diagnostic information to a bug report. rdar://9575623
    • c24a1ee : Following up the earlier refactoring/cleanup work by fixing up how we manage the virtual files the ASTReader has to handle. Specifically, this occurs when the reader is reading AST files that were created in memory and not written to disk. For example, when a user creates a chained PCH using command line flags. These virtual files are stored in MemoryBuffers in ChainIncludeSource.cpp, and then read back in by the ASTReader. This patch moves the management of these buffers into the ModuleManager, so that it becomes the authority on where these buffers are located.
    • e68b5f1 : KeychainAPI checker: only check the paths on which the allocator function returned noErr. (+ minor cleanup)
    • a119da0 : Implement a proper local - global type ID remapping scheme in the AST reader. This scheme permits an AST file to be loaded with its type IDs shifted anywhere in the type ID space.
    • 8df5c9b : Add a debugging dump for Module (also emitted as part of the AST reader statistics), to show the local-to-global mappings. The only such mapping we have (at least, for now) is for source location offsets.
    • f33740e : Generalize the module offset map to include mapping information for all of the kinds of IDs that can be offset. No effectively functionality change; this is preparation for adding remapping for IDs.
    • 39997fc : Make helper functions static.
    • 67e2933 : Fix formatting of SemaExpr.cpp, mainly fixing lines greater than 80 characters. No functional change.
    • 53fc1a6 : Revert "Re-enable byval for ARM in clang. rdar://problem/7662569"
    • f57be28 : Add a skeleton for the Keychain Services API Checker. Register it as OSX experimental for now. Note, the checker still does not handle tracking of escaped values, taking into account the return value of the allocator functions, nor the actual bug reporting..
    • 7898005 : objective-c: reverse patch for // rdar://9818354
    • c35e69d : Implement MipsABIInfo::EmitVAArg. This fix enables clang to complete compilation without bailing out when va_arg is an aggregate expression. However, alignment checking needs to be added in isSafeToEliminateVarargsCast in InstCombineCalls.cpp in order to produce correct mips code (see link below).
    • 8c221b8 : Driver: When compiling i386 -fapple-kext code, we fallback to llvmgcc. Unfortunately, llvmgcc doesn't always work when writing temporary output to /dev/null. Therefore, create a temp file that is later deleted. rdar://9837692
    • 511949b : Pass records with non-trivial destructors or constructors indirectly.
    • 3fc81d3 : Fix linkage type for tentative definition of ivar offset variables (GNUstep runtime)
    • 69a9e01 : Move the serialization of the MODULE_OFFSET_MAP out of the source-manager-writing code and into the general chained-PCH writing code
    • 5d51a1d : Rename the AST file's SOURCE_LOCATION_MAP to MODULE_OFFSET_MAP, to indicate the greater role it will soon play in remapping.
    • 9d9e3dd : Test for // rdar://9846759
    • b9a8adf : Remove dead code flagged by GCC's -Wunused-but-set-variable.
    • 1b39dc8 : Not sure why we bother updating FunctionDecl's EndRangeLoc in FunctionDecl::setParams. EndRangeLoc should always be set to at least the ending paren or brace.
    • 0bfe83b : [libclang] Annotation of parameters that got default args from a previous declarations was broken because the end location of the parameter was the end location of the default arg, resulting in a source range that could begin in one file and end in another.
    • f78c4e5 : Introduce a Fix-It for the "missing sentinel" warning, adding an appropriate sentinel at the end of the argument list. Also, put the sentinel warnings under -Wsentinel. Fixes rdar://problem/8764236.
    • d2d8be6 : Add code completion to produce "else" blocks after an "if" statement. Fixes rdar://problem/9229438.
    • e424470 : When producing code completion results for variadic macros, fold the variadic bit (", ..." or ", args...") into the prior placeholder, like we do with functions and methods. Fixes rdar://problem/9740808.
    • 6fa14dd : Add the various parameter-passing keywords for Distributed Objects (such as in, inout, byref, and oneway) to code completion results. Fixes rdar://problem/8844158.
    • 9a14ecb : Fix a thinko in my __is_empty/__is_pod commit.
    • 6887614 : Turn off __has_feature(is_empty) and __has_feature(is_pod) if the libstdc++ hack has reverted these type traits to keywords. Icky, but fixes rdar://problem/9836262.
    • 0f91c8c : When performing code completion after at @interface, allow both already-defined and forward-declared results. Already-defined results are fine because they could be the start of a category. Fixes rdar://problem/9811691.
    • 4eb7522 : When complaining about a non-POD second argument to va_arg, use a special diagnostic for ARC ownership-qualified types. We wouldn't want to expose Objective-C programmers to the term "POD", would we? Fixes rdar://problem/9772982.
    • 2c7b780 : Use the "Bar.h" - Foo/Bar.h remapping for index header maps only as a fallback, if normal header search fails. Another attempt at rdar://problem/9824020.
    • a3f61ae : objc rewriter - my last patch was not quite right. Fixed again. // rdar://9846759
    • 06433c6 : objc rewriter - set the flag passed to _Block_object_assign/_Block_object_dispose correctly for copying a captured block object. // rdar://9846759
    • 1cf038c : Teach the ASTImporter to cope with cases where we have already imported a forward declaration, but later the full definition of the same entity becomes available. When this happens, import the definition.
    • 895d422 : Add support for the 'Q' arm memory constraint.
    • 6075f01 : [analyzer] Remove recursive visitation in ExprEngine::VisitDeclStmt because it isn't needed anymore.
    • 71f20db : [analyzer] Remove recursive visitation in ExprEngine::VisitCompoundLiteralExpr because it isn't needed anymore.
    • 4e906e8 : [analyzer] Remove recursive visitation in ExprEngine::VisitCastExpr because it isn't needed anymore.
    • 70a34da : [analyzer] Remove recursive visitation in ExprEngine::VisitObjCForCollectionStmt because it isn't needed anymore.
    • 4410a93 : [analyzer] Remove explicit argument processing from ExprEngine::VisitObjCMessage() since it is no longer needed.
    • 871f686 : [analyzer] Remove recursive visitation in ExprEngine::VisitLValObjCIvarRefExpr because it isn't needed anymore.
    • 994b8d3 : [analyzer] tighten up ExprEngine::VisitObjCAtSynchronizationStmt().
    • ae2dc14 : [analyzer] Remove recursive visitation in ExprEngine::VisitObjCPropertyRefExpr because it isn't needed anymore.
    • 962fddc : [analyzer] Remove recursive visitation in ExprEngine::VisitCallExpr because it isn't needed anymore.
    • e3939d7 : [analyzer] Remove recursive visitation in ExprEngine::VisitMemberExpr because it isn't needed anymore.
    • 8f3407e : [analyzer] Remove recursive visitation in ExprEngine::VisitLvalArraySubscriptExpr() because it is no longer needed.
    • baf41f1 : On Darwin, libc++ may be installed alongside the compiler in lib/c++/v1. Look there first, before falling back to the normal /usr/include/c++/v1. rdar://problem/9866149
    • 2e09163 : Renamed Loaded member to ImportedBy, as it's easier to read. Added another set to represent the modules a module imports.
    • d16aa41 : Add a missing \endcode for Doxygen
    • da549e8 : Remove some unnecessary single element array temporaries.
    • c0a575f : Make DiagnosticErrorTrap keep a count of the errors that occurred so multiple DiagnosticErrorTraps can be composed (e.g. a trap inside another trap).
    • 53afad5 : This patch makes the string/character literal tests run in C, C++98/03, and C++0x mode, from Craig Topper!
    • eda6158 : Remove unused debug function
    • 9827a80 : In the ASTReader, replace the continuous range maps whose value types were (Module*, Offset) with equivalent maps whose value type is just a Module*. The offsets have moved into corresponding "Base" fields within the Module itself, where they will also be helpful for local-global translation (eventually).
    • 93f1322 : Fix assertion failure in CodeGen where the input operand to an asm instruction is tied to an output operand which is a pointer, and the input operand is narrower than the output operand.
    • 9aab148 : Fix an inconsistency in Sema::ConvertArgumentsForCall in that the callee note diagnostic was not emitted in the case where there were too few arguments.
    • 1e849b6 : Move the base type ID from the ASTReader's global type map into the Module itself, which makes more sense. This pattern to be repeated several more times.
    • e3b075b : Remove an unused function (found by Clang's -Wunused-function)
    • fefe91e : objective-c: warn if implementation of a method in category masks an existing method in its primary class, class extensions, and primary class's non-optional protocol methods; as primary class, or one of its subclass's will implement this method. This warning has potential of being noisy so it has its own group. // rdar://7020493
    • b4ae29c : Some documentation fixes so that we are explicit about which iteration order is source-order. Also, removing unused NextInSource field of Module.
    • a4c7a43 : Really remove FlatStoreManager and BasicStoreManager, this time from the driver. Also remove associated tests. Sorry for the messy commits; this is the result of a botched Git merge.
    • fc5b21d : Remove flat store tests.
    • af9ef7f : Remove FlatStoreManager and BasicStoreManager. The latter has long been obsolete and the former has no had development in a long time.
    • 8829989 : [analyzer] Overhaul how the static analyzer expects CFGs by forcing CFGs to be linearized only when used by the static analyzer. This required a rewrite of LiveVariables, and exposed a ton of subtle bugs.
    • 217470e : [analyzer] fix bug in malloc checker where the tracked symbol would not properly be removed from the state.
    • fde18c5 : [analyzer] add accessor to StoreRef.
    • fa7a95c : [analyzer] Add StoreManager::includedInBindings() to to query whether a region is used in any bindings.
    • 31d922f : [analyzer] Add safety checking in RegionStoreManager for string literal underruns.
    • 90e2f53 : [analyzer] Teach Environment to not look through MaterializeTemporaryExprs.
    • 6c370d9 : [analyzer] Fix bug in ObjCMessage where casts were being incorrectly ignored.
    • eea72a9 : [analyzer] fix handling of MaterializeTemporaryExpr by binding the result value to the proper expression.
    • 86c67d8 : Introduce the local-global mapping for preprocessed entities, and use it appropriately. Also, patch up a place where we were failing to map local macro definition IDs into global macro definition IDs.
    • e144c70 : Use local-to-global mapping appropriately for macro definitions in the ASTReader
    • 2d2689a : Use the local - global mapping functions for selectors more consistently in the ASTReader.
    • 95eab17 : Teach the ASTReader to perform local and global mapping of identifier IDs properly, although the mapping itself is still trivial.
    • d5612a2 : Add a fixit for removal of unused label.
    • 7efa0e0 : Fix a test case that was intermittently failing. The issue was that instantiations are not stored in an order preserving structure, so the print order may be impacted. Modified test case to do two FileCheck passes to ensure that both instantiations are in the same place.
    • db33e14 : Added basic parsing for all remaining attributes, thread safety analysis. This includes checking that the attributes are applied in the correct contexts and with the correct number of arguments.
    • 1d05d42 : Another test case for the &/* mismatch fixit.
    • 6722155 : Add */& mismatch fixit generation to the Sema::DiagnoseAssignmentResult().
    • 6e4a3f5 : Make the deserialization of Sema::PendingInstantiations lazy. At this point, ASTReader::InitializeSema() has very little interesting work, *except* issues stemming from preloaded declarations. That's something we'll still need to cope with.
    • f3546ee : Refactor the */& mismatch fixit generation out of SemaOverload and provide a simple conversion checking function.
    • f2abb52 : Promote the deserialized PendingInstantiations vector from being a Module member to being an ASTReader member; we want it to be centralized for lazy deserialization.
    • dfe6543 : Lazily deserialize Sema::VTableUses. Plus, fix the utterly and completely broken deserialization mapping code we had for VTableUses, which would have broken horribly as soon as our local-to-global ID mapping became interesting.
    • 73cbbc8 : Thread safety: Fix typo in documentation
    • 31e37b2 : Make Sema::WeakUndeclaredIdentifiers lazily deserialized.
    • 8a22e27 : Add missing documentation onto new member variable.
    • fdde9e7 : Added parsing for guarded_var, pt_guarded_var, lockable, scoped_lockable, and no_thread_safety_analysis attributes, all for thread safety analysis
    • 1afb661 : Switch the ModuleManager over to using a FileManager and FileEntry* as part of its lookup instead of the filename. This is a more correct unique identifier, as symlinks can be handled by the FileManager.
    • 5b9dc7c : Make Sema::ReferencedSelectors lazily deserialized.
    • 8451ec7 : Move a Module's ReferencedSelectorsData into the ASTReader itself, so that it accumulates referenced selectors from each of the modules/PCH files as they are loaded. No actual functionality change, yet.
    • ec12ce2 : Make Sema::LocallyScopedExternalDecls lazily deserialized. In theory, we could turn this into an on-disk hash table so we don't load the whole thing the first time we need it. However, it tends to be very, very small (i.e., empty) for most precompiled headers, so it isn't all that interesting.
    • a26da1a : test/Misc/ast-dump-templates.cpp: Disable this temporarily due to unstable output.
    • 27f1e7e : test/CodeGen/2004-03-16-AsmRegisterCrash.c: XTARGET should accept the part of triplet. ("x86" is not the part of triplet)
    • d46f763 : Make a note about a missing optimization.
    • fb72081 : Fix a couple of problems with initialization and assignment to __block variables where the act of initialization/assignment itself causes the __block variable to be copied to the heap because the variable is of block type and is being assigned a block literal which captures the variable.
    • a17f0c4 : test/CodeGen/struct-matching-constraint.c: Fixup not to emit garbage to source tree.
    • b4dc485 : AST serialization support for the Framework in IndexHeaderMapHeader fields of HeaderFileInfo.
    • 65e02fa : Introduce the "-index-header-map" option, to give special semantics for quoted header lookup when dealing with not-yet-installed frameworks. Fixes rdar://problem/9824020.
    • e1adf81 : test/CodeGen/struct-init.c, struct-matching-constraint.c: Tweak commandline, or they would not be recognized as armv7 on some hosts.
    • 1e5b6f6 : Don't set Sema's StdNamespace or StdBadAlloc if they've already been set
    • a126f17 : Switch Sema::DynamicClasses over to LazyVector
    • 7e90985 : Cut down the number of open/close system calls for output files.
    • d58a0a5 : Switch Sema::ExtVectorDecls over to LazyVector.
    • 886fefa : Fix thinko in last checkin.
    • 95ee667 : Remove the need for a header and specify a triple so that the type sizes make sense.
    • 55528b2 : Fix this up for clang codegen versus llvm-gcc.
    • 0b2b766 : Fix this test to work for arm and on all platforms.
    • 5cb3d69 : Add template instantiations to the output of -ast-dump.
    • d3e46dd : Add a triple to this test and make sure it passes on arm where it was supposed to.
    • 0bbe4b1 : Correct the triple here.
    • 023b592 : This works on arm.
    • 16a91a4 : Apparently this does work on arm.
    • b655803 : This was meant to test arm anyhow, make the registers agree with the instruction and the architecture for which the instruction exists.
    • 2a077fd : Remove this test, it's actually testing something that clang doesn't support.
    • de86a38 : XFAIL this test on ARM. Filed PR10518 to track.
    • 5dcca66 : Remove the optimization option for this test.
    • 2223441 : No one cares about ppc, but make this work for arm and x86 and xfail the rest.
    • c154ec8 : Test for r136294.
    • 1fc1de4 : The -fapple-kext flag was designed to "do the right thing" for building code for use in KEXTs. However, users/Xcode still need to tweak the linker flags to do the right thing, and end up using -Xlinker, for example. Instead, have the driver "do the right thing" when linking when -fapple-kext is present on the command line, and we should have Xcode use -fapple-kext instead of setting other flags like -Xlinker -kext or -nodefaultlibs. rdar://7809940
    • 0129b56 : Turn Sema::DelegatingCtorDecls into a LazyVector.
    • 0752403 : The lock operand to an @synchronized statement is also supposed to be a full-expression; make it so. In ARC, make sure we retain the lock for the entire protected block.
    • a2ee20a : Switch Sema::UnusedFileScopedDecls over to a LazyVector. - Added LazyVector::erase() to support this use case. - Factored out the LazyDecl-of-Decls to RecordData translation in the ASTWriter. There is still a pile of code duplication here to eliminate.
    • aca25bc : Add a utility function to the Lexer, which makes it easier to find a token after the given location. (It is a generalized version of trans::findLocationAfterSemi from ArcMigrate, which will be changed to use the Lexer utility).
    • a862320 : Introduce a new data structure, LazyVector, which is a vector whose contents are lazily loaded on demand from an external source (e.g., an ExternalASTSource or ExternalSemaSource). The "loaded" entities are kept separate from the "local" entities, so that the two can grow independently.
    • d648d37 : Silence gcc warning
    • 020972d : Forbid address-space-qualified function types, per TR 18037
    • 29e3ef8 : Fix TR 18037 citation in SemaType.cpp
    • e926523 : CodeGen: rename CodeGenModule::Runtime to ObjCRuntime
    • 8c83031 : Fix typo in test.
    • 91873b7 : Make CodeGen for array delete involving incomplete class work without crashing. Should fix regression on g++.dg/init/delete1.C.
    • 6748509 : Change Preprocessor::getTotalMemory() to use llvm::capacity_in_bytes().
    • e3c20a8 : Change PreprocessingRecord::getTotalMemory() to use llvm::capacity_in_bytes().
    • eabea45 : Change HeaderSearch::getTotalMemory() to use llvm::capacity_in_bytes().
    • 6e36c12 : Change SourceManager::getDataStructureSizes() to use llvm::capacity_in_bytes().
    • 0c8cd1a : Change ASTContext::getSideTableAllocatedMemory() to use llvm::capacity_in_bytes().
    • a7d445a : Modules don't require validation of the predefines buffer
    • 87dd7d9 : Make this darwin only for now while investigating to clear up x86_64 Release+Asserts linux tests.
    • 785200d : Update C++0x status page to reflect support for unicode string and character literals, from Craig Topper
    • 5cee119 : Add support for C++0x unicode string and character literals, from Craig Topper!
    • 6fa8f86 : [arcmt] Revert r135382, there's a different approach in r135764. rdar://9821111.
    • 18fd0c6 : [arcmt] More automatic transformations and safety improvements; rdar://9615812 :
    • 3ef1ad2 : Easier debugging with Visual Studio Visualizers, from Nikola Smiljanic!
    • 990567c : Clean up the analysis of the collection operand to ObjC for-in statements; specifically, make sure to close over any temporaries or cleanups it might require. In ARC, this has implications for the lifetime of the collection, so emit it with a retain and release it upon exit from the loop.
    • dfb6ae1 : In Microsoft mode, if we are within a templated function and we can't resolve Identifier during BuildCXXNestedNameSpecifier, then extend the SS with Identifier. This will have the effect of resolving Identifier during template instantiation. The goal is to be able to resolve a function call whose nested-name-specifier is located inside a dependent base class.
    • acc060f : Handle different sized wchar_t for windows.
    • d1194fb : clang_getCXTUResourceUsage: report memory used by HeaderSearch.
    • ca7dc2b : clang_getCXTUResourceUsage: Report memory used by data structures in SourceManager.
    • cd6ab8c : Use the correct definition for memset.
    • 7e0afd9 : Make this darwin only to simplify the padding calculations per arch.
    • ef8c79c : Re-fix r136172 so it isn't an error; apparently, some people are fond of their undefined behavior.
    • 0cdb55b : This appears to be passing on all hosts.
    • 1915913 : This patch implements as much of the narrowing conversion error specified by [dcl.init.list] as is possible without generalized initializer lists or full constant expression support, and adds a c++0x-compat warning in C++98 mode.
    • 3e23d68 : Disable the optimization that skips emission of complete, non-virtual destructors of abstract classes. It's undefined behavior to actually call the destructor (e.g., via delete), but the presence of code that calls this destructor doesn't make the program ill-formed. Fixes rdar://problem/9819242.
    • b056db9 : Try a little hack to fix the memset duplication on windows.
    • 7560b3d : Try harder to fix these for windows.
    • d579a88 : Generalize for various build bots.
    • e33f643 : Diagnose trying to delete a pointer to an abstract class with a non-virtual destructor. PR10504.
    • 0c14190 : Rewrite match line to be friendlier to misc buildbots.
    • 2924da3 : Rewrite matching line to be friendlier to misc buildbots.
    • 041e409 : Attempt to rewrite the matching for this test to pacify the windows build bots.
    • aba9ff5 : Remove unused diagnostic definition.
    • b8f31ac : Rework the match here to silence release mode windows buildbots.
    • c694411 : Attempt to generalize this test for release mode buildbots.
    • c0ecde3 : Try to generalize the match to quiet the windows build bot.
    • e52c914 : A couple minor issues with Sema for delete:
    • 54562ec : Use unsigned long long for uint64_t. Fixes part of the windows buildbot.
    • 3883e66 : Migrate most of the rest of test/FrontendC from llvm and migrate most of them to FileCheck.
    • d484040 : Adjust check for release mode.
    • 473506b : In ARC we emit an error when compiling:
    • b025734 : Migrate:
    • 91d1bd6 : Report more memory using in Preprocessor::getTotalMemory() and PreprocessingRecord::getTotalMemory().
    • bb9d3f1 : Migrate CodeGen/2007-03-05-DataLayout.c from test/FrontendC with changes to remove header file includes.
    • f1ce4be : Migrate CodeGen/2005-02-20-AggregateSAVEEXPR.c from test/FrontendC with changes to remove any #include lines.
    • e6f7536 : Migrate CodeGen/2009-09-24-SqrtErrno.c from test/FrontendC with changes to avoid header inclusions.
    • 4ebf229 : Migrate CodeGen/2002-03-11-LargeCharInString.c from test/FrontendC and modify to avoid any outside includes.
    • d9a5459 : Add CodeGen/2009-07-15-pad-wchar_t-array.c migrated from test/FrontendC and modified to avoid includes.
    • fd015a5 : Migrate wchar-const.c with fixes and FileCheck from llvm/test/FrontendC.
    • 2760455 : Revert r136046 while fixing handling of e.g. &foo[index_one_past_size]
    • 48d2c3f : This patch extends the previous patch by starting to incorporate more functionality, like lookup-by-name and exporting lookup tables, into the module manager. Methods now have documentation. A few more functions have been switched over to the new iterator style and away from manual/explicit iteration. Ultimately we want to move away from name lookup here, as symlinks make filenames not a safe unique value, but we use it here as a stopgap before better measures are in place (namely instead using FileEntry* from a global FileManager).
    • 8eaefdc : Provide fixit for static use of objective-c type in few more places and in each instance, fix up the type to the expected type. // rdar://9603056
    • a0651c5 : Eliminate a bunch of temporary strings.
    • 0a47d69 : Add new libclang API, clang_codeCompleteGetObjCSelector(), which provides the partial Objective-C selector used in a code completion. From Connor Wakamo!
    • 2ad63cf : When we decide not to rebuild an instantiated C++ 'new' expression that allocates an array of objects with a non-trivial destructor, be sure to mark the destructor is "used". Fixes PR10480 / rdar://problem/9834317.
    • da8b249 : Objective-C++ ARC: When performing template argument deduction for a lifetime-qualified template parameter, ensure that the deduced template argument is a lifetime type. Fixes rdar://problem/9828157.
    • 9f1210c : After further discussion it has been determined that alignof should report the preferred alignment. Thus, revert r135934, r135935, and r135940.
    • 108f756 : Cleanup the stray comments and variables I could dig out of Sema to refer to 'expansion' instead of 'instantiation'.
    • b00d37e : Fix a stray instantiation comment in Parse.
    • 3201f38 : Clean up as many of the comments in Basic I can find to talk in terms of 'expansion' rather than 'instantiation' for macro source locations.
    • 1728762 : Migrate 'Instantiation' data and API bits of SLocEntry to 'Expansion' etc. With this I think essentially all of the SourceManager APIs are converted. Comments and random other bits of cleanup should be all thats left.
    • 78df836 : Convert InstantiationInfo and much of the related code to ExpansionInfo and various other 'expansion' based terms. I've tried to reformat where appropriate and catch as many references in comments but I'm going to do several more passes. Also I've tried to expand parameter names to be more clear where appropriate.
    • bf340e4 : Rename create(MacroArg)InstantiationLoc to create(MacroArg)ExpansionLoc.
    • 96d3589 : Rename SourceManager (and InstantiationInfo) isMacroArgInstantiation API to isMacroArgExpansion.
    • b48f7c0 : Expand array bounds checking to work in the presence of unary & and *, and to work with pointer arithmetic in addition to array indexing.
    • ccb21e4 : Assembler really doesn't need to create TargetMachine anymore.
    • 22f7bb7 : Test commit
    • bbc4e6b : test/CodeGen/2003-08-18-SigSetJmp.c: XFAIL: mingw, too!
    • f4c7af5 : win32 doesn't have sigsetjmp, just xfail this test there.
    • cd3d88c : Rework this slightly to work for optimized compilers and remove the optimization from the test.
    • aa2e244 : These tests use standard headers and so need ms extensions with MSVC headers. Use the driver instead of just clang -cc1.
    • 4498f12 : Remove this test, it's more properly an optimizer test.
    • a11d129 : Migrate and FileCheck-ize some of:
    • 5485ac0 : Migrate over 2009-04-22-UnknownSize.c, 2009-07-17-VoidParameter.c, 2009-03-09-WeakDeclarations-1.c, and 2010-05-31-palignr.c from llvm/test/FrontendC.
    • 7b6def7 : Rename createCodeEmitter to createMCCodeEmitter; createObjectStreamer to createMCObjectStreamer.
    • 3771235 : Rename createAsmParser to createMCAsmParser.
    • 21118dc : Rename TargetAsmBackend to MCAsmBackend; rename createAsmBackend to createMCAsmBackend.
    • 48a8d14 : Fix the MSVC build. 2 problems: - buildPieces was return a C++ object from inside an extern "C". (MSVC didn't like that) - clang_getCursorReferenceNameRange was missing a CINDEX_LINKAGE causing a link error.
    • dcf1011 : objective-c: Provide a 'fixit' when class was used to declare a static object. // rdar://9603056
    • 6421162 : Rename getInstantiationLineNumber to getExpansionLineNumber in both SourceManager and FullSourceLoc.
    • b49dcd2 : Repair some indentation I missed in my previous commit.
    • a77c031 : Rename getInstantiationColumnNumber to getExpansionColumnNumber in both SourceManager and FullSourceLoc.
    • 75d8c91 : Assembler doesn't need to initialize TargetMachine's anymore.
    • e7b2b6e : Rename getDecomposedInstantiationLoc to getDecomposedExpansionLoc.
    • f84ef95 : getInstantiationLocSlowCase - getExpansionLocSlowCase
    • 999f739 : Rename SourceManager::getImmediateInstantiationRange to getImmediateExpansionRange.
    • 5d6d89f : Refactor of how modules are handled in ASTReader to remove explicit uses of a chain of AST files, instead redirect calls through a module manager. This should help move toward a DAG and the potential of loading multiple, unrelated PCH files. It's still early in development.
    • 822f54a : Allow target to specify about using minimum alignment vs preferred. Takes care of FIXME: Override "preferred align" for double and long long for ARM apcs-gnu ABI. Also part of rdar://9802874
    • 0123161 : Pick up expected diagnostics not only in the main file but also in the file where the first diagnostic occurred. Useful if the main file is not relevant (like with cling). By Vassil Vassilev.
    • e1467db : Fix r135934. Rename was intended, but without additional tests for double.
    • 33abf4e : Rename an alignment test to be more precise and add another test for the default ABI.
    • 34bc0ec : Update C++0x status for explicit override controls and explicit conversion operators, from Jonathan Sauer.
    • 725fb0e : http://llvm.org/bugs/show_bug.cgi?id=10472
    • 430d7a1 : Added clang_getCursorReferenceNameRange to libclang to to retrieve parts of a cursor reference, from Erik Verbruggen!
    • edc3dcc : Rename SourceManager::getInstantiationRange to getExpansionRange.
    • 4027853 : Mechanically rename SourceManager::getInstantiationLoc and FullSourceLoc::getInstantiationLoc to ...::getExpansionLoc. This is part of the API and documentation update from 'instantiation' as the term for macros to 'expansion'.
    • 1cbac8a : Shorten some expressions by using ArrayRef::slice().
    • 542c762 : www/get_started.html: Fix a phrase, "in the *build* directory* in the instructions of Visual Studio. Thanks to Andreas Bittel to point it out.
    • a783142 : add link to 2010 dev mtg
    • eee3ef1 : objc: clang should warn if redeclaration of methods declared in protocol in the class qualified by the protocol have type conflicts. To reduce amount of noise, this is done when class is implemented. // rdar://9352731
    • 335608a : lib/AST/CMakeLists.txt: Update LLVM_USED_LIBS, not to miss symbols with building shared lib. Thanks to Ryuta Suzuki.
    • 9f5bff0 : fix PR10415, tidying up IR representation of module level inline asm to avoid extraneous \n's.
    • ab4e83b : Extend libclang with clang_equalRanges, from Erik Verbruggen!
    • 2da9f5d : Add a link-friendly name to the Clang extension acceptance criteria
    • 40619f3 : Document the criteria for evaluating a proposed extension to Clang.
    • bf6e317 : Tests for explicit conversion operators, along with a fix to avoid considering explicit conversion operators when determining surrogate functions. Fixes PR10453. Note that there are a few test cases where Clang is still wrong because it does not implement DR899; see PR10456.
    • 2d3ba4f : Move ArrayRef to LLVM.h and eliminate now-redundant qualifiers, patch by Jon Mulder!
    • 1c3199a : Unbreak the MSVC build, using namespace clang is required otherwise MSVC will not find raw_ostream.
    • 5f9e272 : remove unneeded llvm:: namespace qualifiers on some core types now that LLVM.h imports them into the clang namespace.
    • d47d3b0 : clean up forward declarations of raw_ostream to use the new LLVM.h patch by Jon Mulder!
    • 52a75ba : Migrate 2007-10-01-BuildArrayRef.c from llvm/test/FrontendC.
    • 3db87b8 : Move TargetAsmParser.h TargetAsmBackend.h and TargetAsmLexer.h to MC where they belong.
    • 46f7272 : Add ext_backslash_newline_eof to Wnewline-eof group.
    • 8cc4fd7 : This patch (thanks to Doug Gregor) fixes a problem where Clang was setting the hasExternalVisibleDecls() bit for all DeclContexts it imported. This caused Clang to make unnecessary calls to findExternalVisibleDecls() when an external AST source was installed.
    • cfe1bcb : Expose no newline at end of file warning under Wnewline-eof flag.
    • d99d3e1 : Match LLVM API change.
    • 0ad9231 : kill a FIXME in IsIntegralPromotion
    • 9461fcc : Remove prepending of '$' to module names.
    • 832d620 : Switch all of the "isysroot" const char*'s throughout the AST reader and writer to StringRef or std::string, as appropriate.
    • 72a9ae1 : Rename ASTReader::PerFileData to serialization::Module, pulling it out of ASTReader so it can become its own full-fledged class (eventually). No functionality change.
    • cb67f61 : Use -ffreestanding with clang_cc1 to make the test picks the clang builtin include.
    • 7107d36 : Add a missing forward declaration and namespace qualifier to this header. This showed up in client code that has a different include ordering after Chris's shuffle of raw_ostream. All of the Clang code ends up with a header included before this one that provides the needed type and using declaration.
    • dc7c5ad : Document the existing objc_precise_lifetime attribute. Introduce and document a new objc_returns_inner_pointer attribute, and consume it by performing a retain+autorelease on message receivers when they're not immediately loaded from an object with precise lifetime.
    • 159a7b3 : Fix test on MSVC: since the test includes a system header it cannot use clang_cc1.
    • 0f6ac7c : Convert IRBuilder::CreateGEP and IRBuilder::CreateInBoundsGEP to use ArrayRef.
    • 7c634a0 : Bring over a test from llvm/test/FrontendC that is for Sema and not CodeGen.
    • 01c5d1d : fix PR10384: C++ allows external arrays of incomplete type as well. Many thanks to Eli for reducing this great testcase.
    • 018ec41 : rename test.
    • 8f1231b : Introduce a global bit-offset continuous range map into the ASTReader, so that we have one, simple way to map from global bit offsets to local bit offsets. Eliminates a number of loops over the chain, and generalizes for more interesting bit remappings.
    • 4947e25 : Fix an embarrassing bug in relocatable PCH support, where we were passing a temporary const char* down as the "isysroot" parameter and then accessing it later. Fixes rdar://problem/9035180.
    • d837c0d : Move duplicate uninitialized warning suppression into the AnalysisBasedWarnings Sema layer and out of the Analysis library itself. This returns the uninitialized values analysis to a more pure form, allowing its original logic to correctly detect some categories of definitely uninitialized values. Fixes PR10358 (again).
    • ba3dd90 : In ARC, non-atomic getters do not need to retain and autorelease their loaded values, although it still worth doing this for __weak properties to get the autoreleased-return-value optimization.
    • da6d976 : Move this ObjCImplementationDecl member function into libAST where it belongs.
    • 6c2c250 : In Objective-C, pull arbitrary attributes from overridden methods, including indirectly overridden methods like those declared in protocols and categories. There are mismatches that we would like to diagnose but aren't yet, but this is fine for now.
    • db8264e : Add a const overload for ObjCInterfaceDecl::all_declared_ivar_begin. This was previously not-const only because it has to lazily construct a chain of ivars the first time it is called (and after the chain is invalidated). In practice, all the clients were just const_casting their const Decls; all those now-unnecessary const_casts have been removed.
    • 527eec8 : objective-c: Any use of @synthesize or @dynamic lexically after a method (or C function) implementation will be rejected with a compilation error in ARC mode, and a compiler warning otherwise. This may cause breakage in non-arc (and arc) tests which don't expect warning/error. Feel free to fix the tests, or reverse the patch, if I am unavailable. // rdar://9818354 - WIP
    • 393f249 : In the AST reader, factor out the mapping of local type IDs to global type IDs into a single place, and make sure that all of the callers use the appropriate functions to do the mapping. Since the mapping is still the identity function, this is essentially a no-op.
    • 19d9d2e : Avoid warning on "clang -c -Dfoo test.i". Lines like these are created when using ccache and libtool.m4 assumes that the compiler cannot print warnings about options it knows about.
    • f5bb9ae : Clean up the rest of the local - global declaration ID mappings within the ASTReader (I hope).
    • 409448c : In the ASTReader, factor out the loading of (local) declaration IDs, such that every declaration ID loaded from an AST file will go through a central local - global mapping function. At present, this change does nothing, since the local - global mapping function is the identity function.
    • f818a8b : Add a missing test for the limits on wchar
    • 428382c : Fix diagnostic when loading a PCH which has different enabled/disabled state of -fobjc-arc. rdar://9818341
    • 1da9014 : Cleaning up more of the ID situation in the AST reader. This patch relaxes and generalizes how CXX base specifiers are identified and loaded by using a ContinuousRangeMap. This also adds a global bit offset (or base) to the PerFileData.
    • 23d7df5 : Add some debugging output to the AST reader, so we can see the global remappings we generate
    • 0cdd798 : In the AST reader, keep track of the total number of source locations entries incrementally, rather than iterating over the chain when loading a single AST file.
    • 9cca68d : For ASTUnit::Save, write the AST to a temporary and then rename it to the actual filename. Should avoid race conditions. Addresses rdar://9788943.
    • bc9d5a3 : Cut down one open/close pair of system calls by using Path's makeUnique instead of createTemporaryFileOnDisk.
    • ee2cdbd : Update cxx_status page on www: clang has had full support for in-class initializers since r132890.
    • 8c32708 : Clean up the C++ status page by eliminating the utterly unnecessary set of projects. C++98/03 is sooooo yesterday
    • be7a1d3 : Update C++0x nullptr status, from Jonathan Sauer
    • feb4fa1 : Add FixIt hint for missing 'id' type. // rdar://9615045
    • aab24a6 : objc - Diagnose missing method return type specifier under a warning flag. // rdar://9615045
    • 1a23f12 : One last RandomAccessIterator operator for PreprocessingRecord::iterator
    • 6702956 : Add the remaining RandomAccessIterator operations to PreprocessingRecord::iterator. Where's concept_map when I need it?
    • 8c24d1a : Define the _MIPS_SIM builtin macro on MIPS platforms. Patch by Robert Millan!
    • a5c0434 : Convert ConstantExpr::getGetElementPtr and ConstantExpr::getInBoundsGetElementPtr to use ArrayRef.
    • 8d366c0 : For some reason I don't fully comprehend, the MSVC debug build will fail with a huge 50+ lines template error message if PreprocessingRecord::iterator has no operator()
    • 4110e13 : Speculatively revert 135649 to bring back the g++ testing bots.
    • 4fed22c : Move AnalysisManager constructor out of line. No functionality change (yet).
    • bc5cb8a : Simplify passing of CFGBuildOptions around for AnalysisContext. No functionality change.
    • 697d05d : Fix a test in warn-sign-conversion.cpp. Removed a part of a directory path so that the directory seperator, which may change on different platforms, is no longer part of the string checked for.
    • 5254161 : Remove warning for conditional operands of differend signedness from -Wsign-compare. Cases that previously warn on this will have a different warning emitted from -Wsign-conversion.
    • e081a61 : New libclang API to expose container type for code completion, from Connor Wakamo!
    • 98c6bda : When copping out on a friend template declaration, be sure to mark its access specifier as public.
    • 4c30bb1 : Rework the detailed preprocessing record to separate preprocessing entities generated directly by the preprocessor from those loaded from the external source (e.g., the ASTReader). By separating these two sets of entities into different vectors, we allow both to grow independently, and eliminate the need for preallocating all of the loaded preprocessing entities. This is similar to the way the recent SourceManager refactoring treats FileIDs and the source location address space.
    • ffe9edd : Addressing code review comments for commit 135509 - Add FixItHints in case a C++ function call is missing * or & operators on
    • 40af63b : Removes a comment.
    • f2dd68f : objc-arc: Fixes a crash @throw'ing an objc message. // pr10411
    • e9b76c1 : Continuing to improve and generalize how IDs are handled in ASTReader. This patch cleans up and generalizes TypeID loading and uses a similar table-lookup to Doug's previous Decl patch.
    • d7a3ba0 : Temporarily revert r135614 while I fix the cmake build.
    • e180907 : Remove extraneous period.
    • 2da13b1 : When the compiler crashes, the compiler driver now produces diagnostic information including the fully preprocessed source file(s) and command line arguments. The developer is asked to attach this diagnostic information to a bug report.
    • 66488ed : Match MCContext change.
    • dd4286b : Fix -Wuninitialized regression involving functions invalidating parameters passed by reference.
    • 97f16dc : Whitespace.
    • c57114a : If -ccc-host-triple i386-pc-win32-macho or -ccc-host-triple x86_64-pc-win32-macho is used in conjunction with -no-integrated-as go ahead and use the Darwin system assembler. rdar://9785470
    • 909bcb3 : arc-objc++: Issue an arc specific diagnostic when overload resolution fails because of lifetime differences of parameter and argument type. // rdar://9790531
    • 582c1fb : test/CMakeLists.txt: Re-indent.
    • 77577ce : Unbreak build after API change.
    • 5d81791 : arrayref should now move in here, and redundant #includes of cassert can go away (since it comes in through Casting.h). This will have to wait for another day when I'm unmotivated though, or someone else to pick it up :)
    • db999aa : remove some now-redundant forward declarations.
    • 8cc488f : add raw_ostream and Twine to LLVM.h, eliminating a ton of llvm:: qualifications.
    • 686775d : now that we have a centralized place to do so, add some using declarations for some common llvm types: stringref and smallvector. This cleans up the codebase quite a bit.

  • platform/external/dbus with 2 change(s)
    • 34e4a71 : Consistently use atomic operations for all access to DBusConnection refcount
    • 7cb8a08 : DBusPendingCall: exclusively use atomic operations on the refcount

  • platform/external/dhcpcd with 1 change(s)
    • ddaa48f : wimax : Fix for some DHCP servers not returning some DNS info

  • platform/external/harfbuzz with 1 change(s)
    • bae491c : Fix Harfbuzz hb_utf16_script_run_prev()

  • platform/external/ipsec-tools with 2 change(s)
    • cadace4 : ipsec-tools: notify the death of racoon by touching a file.
    • fdbd82d : ipsec-tools: add support for server certificates.

  • platform/external/kernel-headers with 2 change(s)

  • platform/external/libnfc-nxp with 3 change(s)
    • b99be65 : Use NFC HAL for some libnfc settings.
    • b13b27a : Use a 10s timeout in uart_read() in FW download mode.
    • 1398dc3 : Revert "Patch to decrease the maximum packet size for NFC firmware download"

  • platform/external/libphonenumber with 3 change(s)
    • d470984 : Fixes for formatInOriginalFormat.
    • e7fd245 : Remove the deplicate geocoding data file for US in English.
    • 507cdd3 : Close an InputStream.

  • platform/external/libxml2 with 1 change(s)
    • 82fe084 : Fix XPath freeing error.

  • platform/external/llvm with 3171 change(s)
    • 4be65ee : Add missing TBLGEN_TD_DIR
    • f593dbc : Bookkeeping.
    • 2e5a5ee : Apply changes to migrate to upstream Oct 20th 2011.
    • cdd8e46 : Use literal pool loads instead of MOVW/MOVT for materializing global addresses when optimizing for size.
    • 40230c4 : Document Paste
    • dc5287c : Document NAME
    • 3ce88b9 : Add Paste Test
    • d3d1cad : Implement Paste
    • e5b252f : Process NAME
    • 7be867e : Process Defm Prefix as Init
    • a9e07dd : Parse Def ID as Value
    • 8592b2b : Don't Parse Object Body as a Name
    • bbec279 : Use Parse Mode
    • f3744a0 : Make ID Parsing More Flexible
    • e338565 : Add NAME Member
    • 22dde7e : Fix Name Access
    • 69a2394 : Fix Name Access
    • 91919cd : Fix Name Access
    • 2c49fbb : Fix Name Access
    • 7efe936 : Disambiguate Numbers and Identifiers
    • a761f92 : Add Peek
    • 9c42bcf : Resolve Record Names
    • f628204 : Allow Names Changes on Unregistered Records
    • 004adaf : Call Record Initializer
    • 675f85d : Add Name Init Record Constructor
    • 0abdadb : Fix 80-col Violation
    • a461c39 : Fix Name Access
    • 41effc6 : Fix Name Access
    • e681d28 : Fix Name Access
    • 0615d6a : Fix Name Check
    • 7474c29 : Fix Name Check
    • f7931b7 : Add Record Init
    • e22b321 : Make Template Arg Names Inits
    • 917924d : Let SetValue Take and Init Name
    • 30c2225 : Add Utility to Scope Names
    • ee6dca1 : Make VarInit Name an Init
    • 96a9f78 : Add Value Accessors
    • d7f8941 : Add Name Init Accessors
    • de703e2 : Add Init Accessors
    • 941aa7b : Generalize the reading of probability metadata to work for both branches and switches, with arbitrary numbers of successors. Still optimized for the common case of 2 successors for a conditional branch.
    • 99d01c5 : Teach the BranchProbabilityInfo analysis pass to read any metadata encoding of probabilities. In the absense of metadata, it continues to fall back on static heuristics.
    • 6aa5c26 : Add pass printing support to BlockFrequencyInfo pass. The implementation layer already had support for printing the results of this analysis, but the wiring was missing.
    • 250c680 : Duncan pointed out that sometimes CC and CXX are used to specify the compiler. Also that the configure script takes care of finding an appropriate compiler if one's not specified.
    • ca58c72 : Add support for the vector-widening of vselect and vector-setcc
    • 495069e : Use bash instead.
    • 922ad78 : Make sure we emit the 'movw' and 'movt' only if it's supported. Otherwise, use a constant pool.
    • b677a13 : Remove some dead code.
    • 783993e : Make changes so that this runs on FreeBSD.
    • 62383e8 : Fix AsmParser's spacing.
    • 717cdb0 : Rename PEXTR to PEXT. Add intrinsics for BMI instructions.
    • d2351e5 : Add build rules for llc, opt, and llvm-link on target device.
    • d98f643 : Remove duplicated LLVM_TARGET definition.
    • fffc0fe : Adding dependencies to allow -DBUILD_SHARED_LIBS=true to complete.
    • aa13603 : Added testcase for rdar://problem/10215997
    • 15a1a22 : Emit the MOVT instruction only if the # LPads is 64K.
    • a5871dc : For Thumb mode, we need to use a constant pool if the value is too large to be used with the CMP instruction.
    • bf79f91 : Regenerate projects/sample/configure.
    • 2532fa2 : projects/sample: Import adapted form of current LLVM autoconf/Makefile setup so that projects/sample is standalone and not tied to the LLVM build setup. - This currently just moves over all of the behavior from LLVM. Eventually all of the configure checks that are directly needed by the LLVM build setup should probably go away, and the project should manage their own configuration checks if necessary.
    • 857bf83 : Revert "Turn on the vzeroupper pass by default."
    • d88bc2a : Add additional element-promotion tests.
    • 862019c : ARM VTBL (one register) assembly parsing and encoding.
    • 85f3a0a : Use the integer compare when the value is small enough. Use the "move into a register and then compare against that" method when it's too large. We have to move the value into the register in the "movw, movt" pair of instructions.
    • 7e8ae57 : Turn on the vzeroupper pass by default.
    • 2115cd2 : Whitespace.
    • 952cb50 : Use the integer compare when the value is small enough. Use the "move into a register and then compare against that" method when it's too large. We have to move the value into the register in the "movw, movt" pair of instructions.
    • 20b2b78 : Missed a spot!
    • 024170f : Fix some typo/formatting issues. No functionality change.
    • fbf19ef : Fix a bug in the legalization of vector anyext-load and trunc-store. Mem Index starts with zero.
    • e482471 : Teach fast isel about vector stores, and make DoSelectCall return false when it fails to emit a store. This fixes rdar://problem/10215997.
    • 564392b : The value we're comparing against may be too large for the ARM CMP instruction. Move the value into a register and then use that for the CMP. rdar://problem/10305266
    • b9fecf4 : The immediate may be too large for the CMP instruction. Move it into a register and use that in the CMP. rdar://problem/10305266
    • 2933e4b : Tidy up formatting.
    • 39dc2af : Tidy up formatting.
    • a7d2e75 : Yet more ARM NEON assembly parsing for the lane index operand.
    • 0487e45 : Enable more encoded immediate tests.
    • ca8d184 : More vmov lane testcases.
    • aead579 : ARM vmla/vmls assembly parsing for the lane index operand.
    • 687656c : ARM vmov assembly parsing for the lane index operand.
    • 3326fc1 : The MCJITMemoryManager takes ownership of the JMM, so don't leak it.
    • 7c24665 : Object/COFF: Remove useless test.
    • 22ff0f3 : llvm-objdump: Add static symbol table dumping.
    • 5e3a082 : Object/COFF: Change type from a struct to a uint16_t. The struct would be incorrect for bigendian systems.
    • 8c39c96 : build: Tidy up a bunch of tool Makefiles, and simplify where possible using the new all-targets pseudo-component.
    • bfe2a6b : llvm-ar: Remove local test target, this is no longer useful.
    • a6b1929 : llvm-config: Add an all-targets pseudo-component.
    • 817cb96 : build: Remove some unused code.
    • 90b7b12 : Use ARM/t2PseudoInst class from ARM/Thumb2 special adds/subs patterns.
    • 9d45de2 : Use isIntN and isUIntN to check for valid signed/unsigned numbers.
    • 7f5f0da : whitespace
    • f7b0207 : A landing pad could have more than one predecessor. In that case, we want that predecessor to remove the jump to it as well. Delay clearing the 'landing pad' flag until after the jumps have been removed. (There is an implicit assumption in several modules that an MBB which jumps to a landing pad has only two successors.) rdar://problem/10304224
    • 9120088 : ARM vmla/vmls assembly parsing for the lane index operand.
    • e8692ed : Another failing encoding.
    • 82fa5fc : Fix NEON mul encoding tests. Wrong file contents previously.
    • 0a03740 : ARM vqdmulh assembly parsing for the lane index operand.
    • 37a3ed2 : Remove duplicate test.
    • 9e7df4a : Tidy up formatting.
    • 970f787 : ARM vmul assembly parsing for the lane index operand.
    • ec11d2a : Tidy up.
    • aff187a : Add a few more testcases.
    • c3f16b3 : Final patch that completes old JIT support for Mips:
    • de1ff7f : Add several FIXME cases for ARM encodings.
    • ad952ad : Fix incorrect check for sign-extended constant BUILD_VECTOR. rdar://problem/10298332
    • db2b18f : Fix a DAG combiner assertion failure when constant folding BUILD_VECTORS.
    • 630243a : Don't exit just because some early commands fail. Use the -k flag when running the checks.
    • 5e3e811 : Tests for 142365.
    • 4442824 : Tidy up formatting.
    • e873d2a : ARM vqdmlal assembly parsing for the lane index operand.
    • 9858a48 : Thumb2 parsing of 'mov.w' gets the cc_out operand wrong. Add an alias for it.
    • f2f5bc6 : ARM assembly parsing and encoding for VMOV.i64.
    • c3cab3a : PTX: Fix disabling of MAD instruction selection
    • 17001ce : Fix a bunch of unused variable warnings when doing a release build with gcc-4.6.
    • 40825fb : Coding style cleanups. No functionality change.
    • 928698b : Remove NaClMode
    • fe04757 : Add support for dynamic stack realignment when in thumb1 mode. rdar://10288916
    • 895ede8 : Commit test, capitalizing store... keep it simple.
    • 46bb70c : Fix comment to refer to correct instruction
    • 0851a29 : Fix misc warnings. Patch by Joe Abbey.
    • d8ffe5b : Backing out patch. Will refactor to remove the AsmParser dependency on Target.
    • 6248a54 : ARM assembly parsing and encoding for VMOV/VMVN/VORR/VBIC.i32.
    • 4984d64 : Revert "llvm-objdump: Add static symbol table dumping."
    • b12715d : llvm-objdump: Add static symbol table dumping.
    • 206d17c : Object: Add some types to SymbolRef::Type.
    • 9b2b812 : Object: Add isSymbolAbsolute and getSymbolSection.
    • c38c36a : Object: Add isSymbolWeak.
    • 0e752cb : Object/COFF: Expose more data in the public API.
    • ab6bcf3 : Object: Implement casting for concrete classes.
    • 7c81013 : Enable a few more NEON immediate tests.
    • 2c10ecb : 80-col.
    • d5d5213 : Minor style cleanup, no functionality change.
    • 5fa792e : Re-applying the target data layout verification patch from r142288, plus appropriate CMake dependencies. Thanks to Raphael Espindola for tracking down the CMake issues.
    • ea46110 : ARM assembly parsing and encoding for VMOV/VMVN/VORR/VBIC.i16.
    • 44d798d : Add support for a new extension to the .file directive:
    • 3a7572f : Add a few FIXME comments.
    • a974bea : Teach the ARC optimizer about the !clang.arc.copy_on_escape metadata tag on objc_retainBlock calls, which indicates that they may be optimized away. rdar://10211286.
    • fa1ee88 : Tidy up.
    • 10820d9 : 142288 broke the build:
    • cd2db16 : Update DebugInfoFinder to match recent debug info encoding changes.
    • 13a7121 : Now Igor, throw the switch...give my creation life!
    • 0e387b2 : ARM NEON "vmov.i8" immediate assembly parsing and encoding.
    • 599d2d4 : Validate target data layout strings. Invalid strings in asm files will result in parse errors. Invalid string literals passed to TargetData constructors will result in an assertion.
    • 419eb36 : When deleting a phi cycle after looking through copies, constrain the register to match its final use.
    • f2ddbcd : Fixed quoting on default data layout option.
    • 540d5b7 : Forgot to add the project name to the 'svn ls' command.
    • 10f3210 : Add message to svn mkdir command.
    • 481837a : Rewrite most of MachODump to work through the generic libObject interfaces rather than accessing the MachO internals directly.
    • df3f929 : Add an accessor to get the underlying MachO representation.
    • d2c6ff1 : Use a SmallVector for intrinsic argument types.
    • a48ed4f : Don't renumber the blocks here. This could cause problems later on if another pass renumbers the blocks again.
    • 9ca9acf : Use the correct predicate for determining if a branch is conditional or not.
    • 76f267d : Add support for the Objective-C personality function to the instruction combining of the landingpad instruction. The ObjC personality function acts almost identically to the C++ personality function. In particular, it uses "null" as a "catch-all" value.
    • 6f9c280 : Pseudoinstructions should not be less constrained than the instruction they are lowered to. This fixes a lot of verifier failures on the test suite.
    • b006337 : MCOperand is pod-like.
    • 698f3b0 : Tidy up organization.
    • e7a0719 : Fix handling of the From parameter in StringRef::find.
    • 5bc8528 : Add a call to EmitSjLjDispatchBlock.
    • dfc56de : Remove mention of llvm-gcc and add mention of dragonegg.
    • f9b9abb : Add CHECKs and document PR11158.
    • 32ab4af : Fix improperly formed assert() call.
    • 1130a79 : Object: Fix redundant name.
    • 1025cce : Constraint register class with constrainRegClass() to CSE a virtual into another. rdar://10293289
    • 63aa791 : stabalize tests by specifying the exact sse level
    • 8ae330a : Add definitions of conditional moves with 64-bit operands. Comment out code for expanding conditional moves, which is not needed since architectures that lack support for conditional moves have been removed.
    • c612916 : Revert change to function alignment b/c existing logic was fine
    • c378015 : Removed set, but unused variables.
    • 90b8bcd : Suppress partial retain+release elimination when there's a possibility that it will span multiple CFG diamonds/triangles which could have different controlling predicates. rdar://10282956
    • 3c5e609 : Correct over-zealous removal of hack.
    • 8f3af87 : Move class and instruction definitions for conditional moves to a seperate file.
    • eea367e : Revert change made in r142205.
    • bdfd98a : Redefine count-leading 0s and 1s instructions.
    • 164741c : Temporarily XFAIL waiting for a fix.
    • 89d3066 : Redefine mfhi/lo and mthi/lo instructions.
    • 442bf7a : Add comments to TargetLowering.h indicating that the set*Alignment functions take arguments in log2(bytes)
    • 728662f : Now that we have the ReturnsTwice function attribute, this method is obsolete. Check the attribute instead. rdar://problem/8031714
    • f1fddcd : Redefine multiply and divide instructions.
    • 2d0a61d : Add definition of a base class for logical shift/rotate instructions with two source registers and redefine 32-bit and 64-bit instructions.
    • e9e5791 : Remove 80-col line and unicode
    • 3639346 : Add definition of a base class for logical shift/rotate immediate instructions and have 32-bit and 64-bit instructions derive from it.
    • 6065541 : Removed set, but unused variable.
    • a01820a : Add definition of immZExt5_64 and redefine immZExt5 as an ImmLeaf.
    • 9904056 : Fix CMake build.
    • 6c15fec : It is safe to speculate load from GOT. This fixes performance regression caused by r141689.
    • 4007529 : Admonish that MI is not IR and virtual registers have constraints.
    • 827454e : svn mv Target/ARM/ARMGlobalMerge.cpp Transforms/Scalar/GlobalMerge.cpp
    • 1e8ba3f : llvm-objdump: Add -s, which prints the contents of each section.
    • d955cf2 : llvm-objdump: Add tests.
    • 98daa9d : Instructions for Book E PPC should be word aligned, set function alignment to reflect this
    • 684dfcf : Fix unused variable warning in the rare circumstance that we have no feature-dependent instructions.
    • af482cf : Pick low-hanging MatchEntry shrinkage fruit.
    • 3bca0b9 : use FileCheck and not grep in new tests
    • 41adc5f : Don't download and compile compiler-rt, libcxx, and libcxxabi by default.
    • 39c14ef : Clean the triple, add check lines.
    • ee6fd6a : Previously v2i32 vectors were legalized to v4i32. Now, they are legalized to v2i64. These tests do not check MMX nor zmoving into them.
    • 4b2dc74 : Don't use inline assembly in 64-bit Visual Studio. Unfortunately, this means that cpuid leaf 7 can't be queried on versions of Visual Studio earlier than VS 2008 SP1. Fixes PR11147.
    • 24bb925 : Add comment explaining that the order of processing doesn't matter here.
    • a854f5d : Update to disable asserts. Build a phase 3 compiler, and compare phase 2 files against phase 3.
    • 87525be : Test case for CanLowerReturn fix (r141981)
    • b31d3d2 : Add PPC 440 scheduler and some associated tests (new files)
    • c6d08f1 : Add PPC 440 scheduler and some associated tests
    • 602650c : Add a routine to swap branch instruction operands, and update any profile metadata at the same time. Use it to preserve metadata attached to a branch when re-writing it in InstCombine.
    • 1416dc2 : Overhaul the 'test-release' script.
    • 7a34c8b : Delete a dead member. Dunno if this was ever used, but the current code directly manipulates the weights inside of the BranchProbabilityInfo that is passed in.
    • 5820d62 : Add a proper LLVM banner to this file.
    • f6481ae : Add tripple and stabalize a few more tests.
    • eeb58a7 : Update the tree before applying patch.
    • acb10f1 : Add triple to tests.
    • 9eee96a : fix a typo in the test
    • 8fb06b3 : Enable element promotion type legalization by deafault. Changed tests which assumed that vectors are legalized by widening them.
    • c4a90c5 : Oops! Fix testcase.
    • 36c7e6c : When looking for dependencies on the src pointer, scan the src pointer. Scanning on the memcpy call will pull up other unrelated stuff. Fixes PR11142.
    • ea6578b : Remove the the test which checks the saving of a vector of booleans into memory.
    • ee62e4f : Add X86 PEXTR and PDEP instructions.
    • 962bad7 : Let printf do the formatting instead aligning strings ourselves.
    • 47b8798 : Twinify better.
    • 5efabcf : Add AsmToken::getEndLoc and use it to add ranges to x86 asm register parsing.
    • 3a35a38 : tools/CMakeLists.txt: Fixup r142103. I don't remember why I had missed the line.
    • f82edaf : X86AsmParser: Synthesize EndLoc for tokens out of StartLoc + Length and print ranges for invalid operands.
    • 04a0426 : PR11143: Save the old diagnostic handler and call it when munging diagnostics for #line directives.
    • c32a8c9 : Fix a bug in LowerV2I64Splat, which generated a BUILD_VECTOR for which there was no pattern.
    • 9cabfa6 : Install the PNG file as well. PR4780.
    • 545a2be : Update tutorial to reflect the current APIs. Also correct a small omission in LangImpl6.html (it needed to defined the 'binary :' operator). PR9052
    • b53fa8b : Add X86 BZHI instruction as well as BMI2 feature detection.
    • dc479c4 : Add X86 INVPCID instruction. Add 32/64-bit predicates to INVEPT, INVVPID, VMREAD, and VMWRITE to remove hack from X86RecognizableInstr.
    • 28588e1 : Enable CREATE_SUBDIRS for a performance win, because there are a lot of files being generated.
    • daada34 : Add flags on Thumb2 indexed stores paralleling the flags on the indexed loads. These missing flags show up as errors when running -verify-coalescing on test-suite.
    • d575137 : Fix an obvious typo found when looking at nearby code.
    • 462b43c : remove the dead 'ShowLine' argument from SMDiagnostic.
    • 3f2d5f6 : Make SMDiagnostic a little more sane. Instead of passing around note/warning/error as a string, pass it around as an enum.
    • d8b7aa2 : Enhance llvm::SourceMgr to support diagnostic ranges, the same way clang does. Enhance the X86 asmparser to produce ranges in the one case that was annoying me, for example:
    • 1773084 : Add X86 BEXTR instruction. This instruction uses VEX.vvvv to encode Operand 3 instead of Operand 2 so needs special casing in the disassembler and code emitter. Ultimately, should pass this information from tablegen
    • 4025061 : CMake: Introduce LLVM_CLANG_SOURCE_DIR, "tools/clang" by default. Clang will not be built if LLVM_CLANG_SOURCE_DIR="" or ${LLVM_CLANG_SOURCE_DIR}/CMakeLists.txt is not found.
    • e5ab51d : autoconf: Introduce --with-clang-srcdir, to build out-of-tree clang as tools/clang on tools/Makefile.
    • a87a7db : Makefile.rules: Let OPTIONAL_PARALLEL_DIRS accept out-of-tree absolute path.
    • 40a4360 : test/Makefile: Inspect $(PROJ_OBJ_ROOT)/tools/clang/Makefile instead of $(PROJ_SRC_ROOT)/tools/clang for "check-all".
    • 9a6d615 : Add a helper script to create branches and tag release candidates.
    • f4a4e3a : Add a script that helps merge changes into a release branch.
    • 4145c49 : Add X86 feature detection support for BMI instructions. Added new cpuid function for accessing leafs with sub leafs specified in ECX. Also added code to keep track of the max cpuid level supported in both basic and extended leaves and qualified the existing cpuid calls and the new call to leaf 7.
    • 566f233 : Add support for X86 blsr, blsmsk, and blsi instructions. Required extra work because these are the first VEX encoded instructions to use the reg field as an opcode extension.
    • 4d83b79 : The CELL backend cannot select patterns for vector trunc-store and shl on v2i64; CellSPU/shift_ops.ll fails when promoting elements.
    • 004a24b : ARM cannot select a pattern for trunc-store v4i8; /ARM/vrev.ll fails when promoting elements.
    • 5616978 : Fix extra whitespace in comment.
    • e688f88 : Let this test pass even if 'int' is somewhere in its directory path.
    • 003fad9 : SmallVector - array
    • 1673b15 : Don't replace all dominated uses if there is only one use, since that use can't be dominated, saving one domtree lookup.
    • 6e6a558 : Add a bad char heuristic to StringRef::find.
    • e9b58d0 : Move the legalization of vector loads and stores into LegalizeVectorOps. In some cases we need the second type-legalization pass in order to support all cases.
    • 365c9f1 : Fix SCEVExpander assert during LSR: "argument of incompatible type".
    • 569c4a4 : Revert r142046, "Fix for llvm::sys::getHostTriple on Windows. Instead of relying on the triple"
    • 8e3ef11 : Fix for llvm::sys::getHostTriple on Windows. Instead of relying on the triple from config.h, it discovers the triple based on the execution environment.
    • de7ec8b : ToT is now for 3.1.
    • c5c3676 : Windows/Memory.inc: Support the ability to allocate memory "near" another block of memory on Win32. It has fixed FIXME.
    • 513b1f4 : Fix indvars randomness by removing iteration over a map.
    • 4ed1fb0 : Clear out the landing pad to call site map for each function.
    • 5348496 : Mark tADDrSPi as having side effects again.
    • ba087df : Mention some of the improvements in Clang 3.0 over 2.9.
    • d73462a : Thumb1 does not support dynamic stack realignment. rdar://10288916 is tracking this fix.
    • 918f215 : Mark registers as DEAD because they're really just clobbers.
    • 46995fa : Add missing correctness check to ARMTargetLowering::ReconstructShuffle. Fixes PR11129.
    • 5d79859 : Make sure that the register is in the register class before adding it as a machine op.
    • 969c9ef : Mark the invoke call instruction as implicitly defining the callee-saved registers.
    • aeee2d3 : constify array itself, don't iterate multiple times.
    • 2b28a74 : Allow the source module to be materialized during the linking process.
    • 008c838 : Update test for disabling of code/data marker labels in ELF.
    • 8223e45 : Fix a non-firing assert. Change: assert("bad SymbolicOp.VariantKind"); To: assert(0 && "bad SymbolicOp.VariantKind");
    • ff616cb : OCaml bindings: add some missing functions and testcases.
    • 0be167b : OCaml bindings: fix attributes to use all 32 bits
    • 8da43bf : OCaml bindings: add icmp_predicate
    • 2c4ae18 : OCaml bindings: fix infinite recursion on string_of_lltype
    • 6b228e5 : bindings: named struct support
    • 4c4b71c : ocaml bindings: add findlib META support
    • 3dd1674 : ocaml bindings: introduce classify_value
    • 6563c87 : ocaml bindings: add getopcode for constant and instruction, and int64_of_const.
    • 3111641 : bindings: tab and indentation fixes of my previous commits
    • b10946a : A few 80-col violations.
    • 5d6a673 : Disable code/data region symbols on ELF targets, where different mapping symbols are used for ARM/Thumb mode code. This should only be re-enabled once we have a solution to properly distinguish these.
    • d712f93 : Add an implementation of the CanLowerReturn function to the PPC backend
    • 1ce2668 : Add f128 to datalayout string.
    • bc5c49b : Fix threads/jobs Calculation
    • 8e20b94 : Add Helpful Messages
    • cdc3fbc : Add Option to Skip Install
    • d17f813 : Add Option to Skip gcc Build
    • 8ee53e2 : initial test commit (remove whitespace)
    • ac7caa0 : Update live-in lists when splitting critical edges.
    • 008b58c : Revert r141932, r141936 and r141937.
    • 312b7c9 : Fix typo. "__sync_fetch_and-xor_4" should be "__sync_fetch_and_xor_4".
    • 4c7f1ca : An instruction's operands aren't necessarily instructions or constants. They could be arguments, for example.
    • 54a1117 : Add X86 ANDN instruction. Including instruction selection.
    • 909652f : Add X86 TZCNT instruction and patterns to select it. Also added core-avx2 processor which is gcc's name for Haswell.
    • 91d2cc9 : Definition of function getMipsRegisterNumbering.
    • 2891662 : Add definition of class MipsELFWriterInfo.
    • 51f72c5 : Add missing relocation types.
    • 88c1103 : Add ELF relocation types for Mips.
    • 36004b9 : Fixup enumerations.
    • 93d2a0a : Add more Mips relocation types.
    • ccbe603 : Ban rematerializable instructions with side effects.
    • 0a951fb : V_SET0 has no side effects.
    • a80444f : Add value numbers when spilling dead defs.
    • dae36ba : Avoid undefined behavior in negation in LSR. Patch by Ahmed Charles.
    • ecb830e : Fix undefined shift. Patch by Ahmed Charles.
    • d83a54f : Simplify assertion, and avoid undefined shift. Based on patch by Ahmed Charles.
    • 2dd0cfe : Support/Windows: Add support modifying memory permissions on Windows. Patch by Aaron Ballman!
    • 5bd7ff2 : Fix undefined shifts and abs in Alpha backend. Based on patch by Ahmed Charles.
    • 7d2bc08 : Support/Windows: Add efficent RW mutex on Windows. Patch by Aaron Ballman!
    • 87d5cb8 : Fixed typo.
    • 90406e1 : Avoid undefined behavior in signed integer negation. Patch by Ahmed Charles.
    • 8e4d042 : Simplify and avoid undefined shift. Based on patch by Ahmed Charles.
    • 63b2f8c : ELF: Fix the section that relocations apply to. Add test to verify. Patch by Danil Malyshev!
    • 942eb00 : llvm-object: Add inline relocation information to disassembly.
    • b414142 : Enhance the memdep interface so that users can tell the difference between a dependency which cannot be calculated and a path reaching the entry point of the function. This patch introduces isNonFuncLocal, which replaces isUnknown in some cases.
    • 48ba0e4 : Reapply r141870, SCEV expansion of post-inc.
    • fe28ef4 : Don't forget to reconstruct D after changing the scope that we're looking at.
    • a4d326d : Update IntrinsicsXCore.td with the normal LLVM notice at the top of the file.
    • 14a5f46 : llvm-objdump: Fix whitespace.
    • 178dbd4 : llvm-objdump: Fix dumping of multiple symbols with the same address.
    • bff6f86 : COFF: Implement sectionContainsSymbol for relocatable files only.
    • 7f1653a : Fix memory corruption I introduced a few checkins ago.
    • e9d3c1c : configure: [cygming] Set --disable-embed-stdcxx by default on --enable-shared.
    • c18e940 : SETEND is not allowed in an IT block.
    • 753e02a : Revert r141870. The test case crashes on linux with data corruption. A deeper issue was exposed.
    • e0af2ad : docs/CMake.html: Clarify LLVM_LIT_TOOLS_DIR as :PATH.
    • c8f6c44 : Fix incorrect ELF typedefs.
    • b001759 : LSR: Reuse the post-inc expansion of expressions.
    • 5d332f8 : build: Remove some stray LLVMC configure variables.
    • 94f01db : SCEV: Rewrite TrandformForPostIncUse to handle expression DAGs, not just expression trees.
    • ce1823c : Slightly more useful tracing.
    • d38e99e : Force CPU type on test so it doesn't accidentally emit movbe instead of bswap on Intel Atom CPUs.
    • 898f336 : Mark 'branch indirect' instruction as an indirect branch. Not having it confused assembly printing of jumptables.
    • 4e68054 : More closely follow libgcc, which has code after the `ret' instruction to release the stack segment and reset the stack pointer. Place the code in its own MBB to make the verifier happy.
    • 1203fe7 : Revert r141854 because it was causing failures:
    • 82222c2 : Should not add instructions to a BB after a return instruction. The machine instruction verifier doesn't like this, nor do I.
    • 326e491 : Use an existing method.
    • 8ab1d1e : Add X86 TZCNT instruction and patterns to select it. Also added core-avx2 processor which is gcc's name for Haswell.
    • d501c71 : Add 'implicit EFLAGS' to patterns for popcnt and lzcnt
    • f77dea1 : Elf_Word is not POD! Stop using it in a DenseMap.
    • dec1b10 : If MI is deleted then remove it from the set. If a new MI is created, it could have the same address as the one we deleted, and we don't want that in the set yet. Noticed by inspection.
    • ea3abd5 : Tabs to spaces.
    • 3821b18 : Add missing braces to pacify GCC's -Wparentheses.
    • fc61a23 : Add missing ELF constants.
    • dee83c9 : Also inflate register classes around inline asm.
    • f591697 : Add MachineInstr::getRegClassConstraint().
    • 9dfaacb : Extract a method for finding the inline asm flag operand.
    • 459b74b : Encode register class constreaints in inline asm instructions.
    • a3a1635 : Attempt to fix MSVC build.
    • f6fb7ed : We need to verify that the machine instruction we're using as a replacement for our current machine instruction defines a register with the same register class as what's being replaced. This showed up in the SPEC 403.gcc benchmark, where it would ICE because a tail call was expecting one register class but was given another. (The machine instruction verifier catches this situation.) rdar://problem/10270968
    • 5c75af6 : Use a utility from MathExtras to clarify a check and avoid undefined behavior. Based on patch by Ahmed Charles.
    • 95f8db4 : The VMAs stored in the symbol table of a MachO file are absolute addresses, not offsets from the section.
    • a046d2f : Use unsigned multiply to hash integers, so we don't end up with undefined behavior for large signed integers. Based on patch by Ahmed Charles.
    • 68df750 : Removed colons from some target datalayout strings in test, since they don't match the required format.
    • 10a8c62 : Don't label a STAB debugging symbol as a function symbol.
    • cd74988 : sectionContainsSymbol needs to be based on VMA's rather than section indices to properly account for files with segment load commands that contain no sections.
    • 18ead6b : Fix a couple hash functions so that they do not depend on undefined shifts. Based on patch by Ahmed Charles.
    • 81b2928 : ARM addrmode5 represents the 'U' bit of the encoding backwards.
    • 90196fc : Fix APFloat::getSmallestNormalized so the shift doesn't depend on undefined behavior. Patch from Ahmed Charles.
    • 7247a5f : Fix APFloat::getLargest so that it actually returns the correct value. Found by accident while reviewing a patch to nearby code.
    • 4124294 : Section indices in MachO symbol tables begin at 1, not 0.
    • acbaecd : Finish supporting cpp #file/line comments in assembler for error messages. So for cpp pre-processed assembly we give correct filename and line numbers when reporting errors in assembly files when using clang and -integrated-as on .s files. rdar://8998895
    • 7007e4c : Disable machine LICM speculation check (for profitability) until I have time to investigate the regressions.
    • 980df16 : To find the exiting VN of a LiveInterval from a block, use the previous slot rather than the previous index. If a block has a single instruction, the previous index may be in a different basic block.
    • c66e7af : Thumb2 assembly parsing and encoding for LDC/STC.
    • 18ad76b : Hoist vector.size() computation out of the loop. No functionality change.
    • b0786b3 : addrmode2 is gone from these, so no need for the reg0 operand.
    • 9f45754 : ARM encoding tests for STC.
    • 9b8f2a0 : ARM parsing and encoding for the option form of LDC/STC instructions.
    • 01208d5 : 80 columns.
    • bc9c802 : Tidy up. Formatting.
    • 9e15d65 : Fix a thinko that Nick noticed. The previous code actually worked as intended, but only by accident.
    • 18dcb87 : lib/Object/ELFObjectFile.cpp: Fix undefined behavior for MC/ELF/many-section.s not to fail (on msvc).
    • a2e8791 : Expand the check for a landing pad so that it looks at the basic block's containing loop's header to see if that's a landing pad. If it is, then we don't want to hoist instructions out of the loop and above the header.
    • 22e8a36 : Use an existing function.
    • 41f9a43 : Define base class LogicNOR and make 32-bit and 64-bit NOR derive from it.
    • 6baabc1 : Fix encoding of 32-bit integer instructions. Change names of operands and nodes. Remove unused classes.
    • d0851aa : Make this use a public accessor too.
    • 865703e : Add missing space.
    • 1f9c686 : Fix indent in comment.
    • 7efba85 : Fix r141744. 1. The speculation check may not have been performed if the BB hasn't had a load LICM candidate. 2. If the candidate would be CSE'ed, then go ahead and speculatively LICM the instruction even if it's in high register pressure situation.
    • 1c062c2 : Fix -widen-vmovs liveness issues.
    • fad6287 : Refine r141689 with a tri-state variable. Also teach MachineLICM to avoid "speculation" when register pressure is high.
    • 80eb994 : Change name of class to ArithOverflowR.
    • 2dfd3a9 : Define class ArithLogicI. Make 32-bit and 64-bit arithmetic and logical instructions with two register operands derive from it.
    • b75e5d9 : Make this test more specific. There are 3 stats that matched "machine-licm".
    • 3c43b48 : Use public accessors on the scope that is returned.
    • 76d9f1c : Fix comment.
    • c2f3ac9 : Define classes ArithLogicR and ArithLogicOfR and make 32-bit and 64-bit arithmetic and logical instructions with three register operands derive from them. Fix instruction encoding too.
    • e4617b0 : target data is a contract with the code generator, not the "processor"
    • 6509f50 : improve some of the documentation around target data layout strings.
    • 6618a24 : Add a new wrapper node for a DILexicalBlock that encapsulates it and a file. Since it should only be used when necessary propagate it through the backend code generation and tweak testcases accordingly.
    • 5ba7b50 : Formatting.
    • 0f69197 : Spacing.
    • c83693f : N.B. This is with the new EH scheme:
    • 68ad567 : Fix function isUnalignedLoadStore.
    • 2bd0118 : ARM assembly parsing and encoding for LDC{2}{L}/STC{2}{L} instructions.
    • d8212b2 : Remove unused PatLeaf.
    • 7cc037a : Change the names of 64-bit logical instructions so that they match the names of the real instructions.
    • e575499 : Revert r141529. This is causing failures in the test-suite, like bigstack and ReedSolomon. Boo...
    • 395d76c : Remove redundancy in setcc patterns using multiclass.
    • c055a87 : Fix PR11106 by correcting a typo that has been in the code for over a year. This would have never worked, since the element type of a vector type is never a vector type. Also fix the conditional to be more direct in checking whether EltTy is a vector type.
    • b07a3d6 : Use sltiu instead of sltu when a register operand and immediate are compared.
    • fbab220 : Update test for r141704.
    • 2cf8dd3 : ARM addressing mode cleanup for LDC/STC.
    • 2c607b6 : Clean up a few references to System/. We still have docs/SystemLibrary.html lying around...
    • b5e8bc1 : Support/DataTypes.h: Clean up some types and add matching (but presumably unused) code from .cmake to DataTypes.h.in so that the files are essentially in sync module differences in autoconf/cmake replacement syntax.
    • 830378f : Remove extra semicolon.
    • 06f8231 : Add patterns for conditional branches with 64-bit register operands.
    • 8191f34 : Add support for 64-bit set-on-less-than instructions.
    • 3e3427a : Add support for conditional branch instructions with 64-bit register operands.
    • 2e35047 : Add dominance check for the instruction being hoisted.
    • 5f119a6 : Fixed docs to reflect the proper default value and behaviour of the natural stack alignment.
    • f7c93a3 : Expose MachOObjectFile externally, like we do for COFF. First step in reducing the amount of special-purpose code needed for llvm-objdump.
    • 57dcb85 : ARM parse alignment specifier for NEON load/store instructions.
    • 32ee5c2 : Mention the cmake build guide on the main docs page.
    • e53c87b : ARM Rename operand sub-structure 'Mem' to 'Memory' for a bit more clarity.
    • 6fe4e51 : Add support for legalization of vector SHL/SRA/SRL instructions
    • 6c6f28f : Implement the emitFrameIndexDebugValue and getDebugValueLocation hooks.
    • 56354d4 : Fix a iterator out of bounds error, that triggers rarely.
    • f048c3f : llvm-objdump.cpp: Use PRIx64 as format specifier for int64_t.
    • e2aa5d5 : Add -D__STDC_FORMAT_MACROS to use PRIx64.
    • 11b8a00 : cmake/modules/HandleLLVMOptions.cmake: Reorder __STDC_CONSTANT_MACROS and __STDC_LIMIT_MACROS.
    • 884b918 : Add support for legalization of vector trunc-store where the saved scalar type is illegal (for example, v2i16 on systems where the smallest store size is i32)
    • c2b2e13 : Cleanup the trunc-store legalization code and add asserts.
    • eb13b61 : Update to a newer doxygen version. PR8214. Patch by Jeremy Huddleston.
    • c48b301 : Add HasPOPCNT predicate to the POPCNT instructions. Also mark POPCNT as modifying EFLAGS.
    • b99d5b0 : Minor modifications to make the Hello World example resemble the Hello World pass in the tree. Also some minor formatting changes. PR9413
    • 227358e : Make Ivy Bridge 16-bit floating point conversion instructions require AVX.
    • b1b8f5f : Apparently, sometimes llvm-nm doesn't put the undefined symbol at the top. Take that into account and test for no U's showing up in the middle, which is what we really wanted to test for.
    • a6f386b : Test case for X86 LZCNT instruction selection.
    • 37f2167 : Add X86 LZCNT instruction. Including instruction selection support.
    • f7f0610 : Use the proper name for "externally visible" linkage -- 'external'. This is the keyword in LLVM for externally visible linkage. PR10636
    • 3478173 : Reword the SetVector description to reflect reality. Patch by Michael Ilseman!
    • 66b20c4 : Add a test for PR10565.
    • 446d952 : Remove a lot of the fancy scalar replacement code for dealing with llvm-gcc's lowering of NEON code. It provides little-to-no benefit now and only introduces additional complexity.
    • 3606f75 : Test simplification that Ana Pazos noticed.
    • 29480fd : Fix disassembling of popcntw. Also remove some code that says it accounts for 64BIT_REXW_XD not existing, but it does exist.
    • 7aabcb1 : Also create a shndx even if there are no symbols. This lets us test .symtab_shndx reading and writing together, and finally we have a testcase for r141440.
    • b1044b0 : test/CodeGen/X86/movbe.ll: Give explicit -mtriple=x86_64-linux, to unbreak win32 hosts.
    • bfbbe32 : Reapply r141605 with fixes for appropriate handling of reserved section numbers in st_shndx fields.
    • 15c3f72 : Add support for .symtab_shnidx. Unfortunately, doing this required breaking a layer of abstraction around SymbolRef where you can read its private SymbolPimpl member.
    • a02bfce : Add experimental -enable-lsr-phielim option.
    • 2044941 : Move replaceCongruentIVs into SCEVExapander and bias toward "expanded" IVs.
    • b58078b : Test cases for 64-bit load and store instructions.
    • eafc819 : Added a testcase for r141599, rdar://problem/10063881.
    • 1acb7df : Make changes necessary for supporting floating point load and store instructions that have 64-bit pointers or access the 32 x 64-bit floating pointer register file. Update functions in MipsInstrInfo.cpp too.
    • 142bd1a : Move -widen-vmovs to ARMBaseInstrInfo::expandPostRAPseudo().
    • a5903ac : Modify lowering of GlobalAddress so that correct code is emitted when target is Mips64.
    • 4ad06e6 : Fixed natural stack alignment for Linux x86-32. Thanks Eli.
    • 381e97d : Modify MipsDAGToDAGISel::SelectAddr so that it can handle 64-bit pointers too.
    • fb05d3d : Revert r141605 as it broke tests for llvm-nm.
    • 43aed32 : Simplify and update functions storeRegToStackSlot and loadRegFromStackSlot.
    • 7bd19bd : Add definitions of 64-bit loads and stores. Add a patterns for unaligned zextloadi32 for which there is no corresponding pseudo or real instruction.
    • 26e8ca3 : Add testcase for PR11107.
    • f1f1a4f : Make it possible to use the linker without destroying the source module. This is so the source module can be linked to multiple other destination modules. For all that used LinkModules() before, they will continue to destroy the source module as before.
    • fad138d : Add support for reading many-section ELF files. If you want to tackle adding the testcase, let me know. It's a 4.2MB ELF file and I'll be happy to mail it to you.
    • d55bb38 : Change definitions of classes LoadM and StoreM in preparation for adding support for 64-bit load and store instructions. Add definitions of 64-bit memory operand and 16-bit immediate operand.
    • 3f56d4b : Simplify check that optional def is there and is CPSR.
    • bb5b3f3 : Add a natural stack alignment field to TargetData, and prevent InstCombine from promoting allocas to preferred alignments that exceed the natural alignment. This avoids some potentially expensive dynamic stack realignments.
    • 15565ad : Fix warning.
    • db7334d : Revert r141569 and r141576.
    • f6c35c5 : Simplify operand Kind checks a bit.
    • ef2c86f : Reapply r141365 now that PR11107 is fixed.
    • 38fbe32 : Add a name to sub-operand for clarity.
    • 721e1d2 : If the CPSR is defined by a copy, then we don't want to merge it into an IT block. E.g., if we have:
    • dca62d5 : Make sure the X86 backend doesn't explode on 128-bit shuffles in AVX mode. Fixes PR11102.
    • e2f2f07 : Object: add getSectionAlignment.
    • 023bb15 : Add support for dumping section headers to llvm-objdump. This uses the same flags as binutils objdump but the output is different, not just in format but also showing different sections. Compare its results against readelf, not objdump.
    • 735fe0f : Give targets a chance to expand even standard pseudos.
    • 6b50bc9 : If loop header is also loop exiting block then it may not be safe to hoist instructions.
    • 819a2ab : Emit full ED initializers even for pseudo-instructions.
    • 8cc4769 : Allow stat += 0 without activating the stat.
    • b35e4e8 : whitespace
    • 717073c : X86: Add a subtarget definition for core-avx-i, which is GCC's name for ivy bridge.
    • a7934dd : Fix 10892 - When lowering SIGN_EXTEND_INREG do not lower v2i64 because the instruction set has no 64-bit SRA support.
    • 9ac743a : Add dominance check for the instruction being hoisted.
    • 5a57168 : Mark the standard pseudos as isPseudo = 1.
    • 9d2fa87 : The Mips specific function for instruction cache invalidation cannot be compiled on mips32r1 processors because it uses synci and rdhwr instructions which are supported only on mips32r2, so I replaced this function with the call to function cacheflush which works for both mips32r1 and mips32r2. Patch by Sasa Stankovic
    • a86a586 : X86: Add patterns for the movbe instruction (mov + bswap, only available on atom)
    • a0ed0c0 : Insert dummy ED table entries for pseudo-instructions.
    • eba564c : Revert r141365. It was causing MultiSource/Benchmarks/MiBench/consumer-lame to hang, and possibly SPEC/CINT2006/464_h264ref.
    • 042aadd : MCAtom extending methods need to extend the range of the atom as well.
    • 475fa26 : Mark the llvm.eh.sjlj.functioncontext intrinsic as reading memory so that fast isel doesn't ignore it.
    • d226ed7 : llvm-objdump: Take ownership of MCInstrInfos.
    • 1a9908d : llvm-nm: Don't leak bitcode buffers.
    • 5d53ff5 : XFAIL tblgen tests on leak checkers.
    • 8129d21 : When getting the number of bits necessary for addressing mode ARMII::AddrModeT1_s, we need to take into account that if the frame register is ARM::SP, then the number of bits is 8. If it's not ARM::SP, then the number of bits is 5.
    • 1f10480 : Put a bunch of calls to ToggleFeature behind proper if statements.
    • 29b9d7e : Fix a regression from r138445. If we're loading from the frame/base pointer the tADDrSPi instruction can't be used. Make sure we're updating the opcode to tADDi3 in all cases. rdar://10254707
    • 68226a4 : PTX: Print .ptr kernel attributes if PTX version = 2.2
    • da39404 : Add Ivy Bridge 16-bit floating point conversion instructions for the X86 disassembler.
    • b7994fe : Prevent potential NOREX bug.
    • ed74482 : Add TEST8ri_NOREX pseudo to constrain sub_8bit_hi copies.
    • a55f657 : Add missing test case for r141410.
    • 70b582a : Include direct.h for _mkdir on mingw32 too.
    • 3ae9cf5 : Revert r141079: tblgen: add preprocessor as a separate mode
    • f855795 : Always check if a method or a type exist before trying to create it.
    • 48f248a : lib/Object: Suppress warnings on gcc-4.3.4 cygwin
    • 017449d : lib/DebugInfo/DWARFDebugLine.cpp: De-Unicode-ify.
    • 3a79eac : Whitespace
    • 2d4b60f : Disable ABS optimization for Thumb1 target, we don't have necessary instructions there.
    • 4391bb7 : Simplify definition of FP move instructions.
    • c9289f6 : Define classes and multiclasses for FP binary instructions.
    • bfca079 : Define multiclasses for FP-to-FP instructions.
    • a8de1c1 : Define classes for FP unary instructions and multiclasses for FP-to-fixed point conversion instructions.
    • 861a410 : Unit test for LSR phi reuse in r141442.
    • cb518ee : Add patterns for unaligned load and store instructions and enable the instruction selector to generate them.
    • 94794dd : Add an extra safety check in front of the optimization in r141442.
    • d5d1700 : Use the code that lowers the arguments and spills any values which are alive across unwind edges. This is for the back-end which expects such things.
    • 0be07d3 : Add clang-tblgen to OPTIONAL_DIRS when building native tools for the cross build, so that a native version of clang-tblgen is available. Should unbreak Clang cross build.
    • 27781b7 : llvm-objdump: Add relocation and archive support.
    • 880545e : PathV2: Add simplified version of exists that returns false on error.
    • c6500a5 : Object: Add support for opening stdin.
    • 5861893 : Object: constize Archive.
    • 051fee0 : Enable ARM mode VDUP(scalar) tests.
    • 460a905 : ARM NEON assembly parsing and encoding for VDUP(scalar).
    • c570191 : LSR should only reuse phis that match its formula.
    • 9eb6b4d : Fix APInt::operator*= so that it computes the correct result for large integers where there is unsigned overflow. Fix APFloat::toString so that it doesn't depend on the incorrect behavior in common cases (and computes the correct result in some rare cases). Fixes PR11086.
    • d2fdb4a : Don't emit the symbol table entry for the .symtab_shndx section either.
    • 4a8d43e : Remove extraneous curlies. No functionality change.
    • 21ff17c : ARM prefix asmparser operand kind enums for readability.
    • 2acf638 : Take all of the invoke basic blocks and make the dispatch basic block their new successor. Remove the old landing pad from their successor list, because it's now the successor of the dispatch block. Now that the landing pad blocks are no longer the destination of invokes, we can mark them as normal basic blocks instead of landing pads.
    • fbf5f1b : Add a bool value to set the IsLandingPad flag to.
    • f1083d4 : Take the code that was emitted for the llvm.eh.dispatch.setup intrinsic and emit it with the new SjLj emitter stuff. This way there's no need to emit that kind-of-hacky intrinsic.
    • ce370cf : Thread the chain through the eh.sjlj.setjmp intrinsic, like it's documented to do. This will be useful later on with the new SJLJ stuff.
    • b3429d3 : Don't emit a shstrtabindex in the reserved range. Spotted by inspection and patch by Cary Coutant!
    • aaae3f6 : Clarify/fix typo. No functionality change.
    • b66f184 : Constrain both operands on MOVZX32_NOREXrr8.
    • 2099039 : Fix a few changes I missed.
    • 01a4db3 : Fix GCC again.
    • 3773fb4 : Fix spelling in comment.
    • 4344b1e : Change relocation API to be per section. This time without breaking GCC.
    • 186ffac : Improve ARM assembly parser diagnostic for unexpected tokens.
    • a48ad13 : Revert 141376 and 141377 due to breaking the build.
    • a1b1b79 : Remove Multidefs
    • 67370ef : Fix spelling in comment.
    • f1164a2 : Change relocation API to be per section.
    • b767613 : Jakob is the code owner of register allocation and TableGen.
    • 7c1780c : High bits of movmskp{s|d} and pmovmskb are known zero. rdar://10247336
    • 6d2f9ce : Reenable tail calls for iOS 5.0 and later.
    • 2fef457 : Reenable use of divmod compiler_rt functions for iOS 5.0 and later.
    • 7761948 : Move default to top of switch
    • 244455e : Peephole optimization for ABS on ARM. Patch by Ana Pazos!
    • 3f329cb : Teach GVN to also propagate switch cases. For example, in this code switch (n) { case 27: do_something(x); ... } the call do_something(x) will be replaced with do_something(27). In gcc-as-one-big-file this results in the removal of about 500 lines of bitcode (about 0.02%), so has about 1/10 of the effect of propagating branch conditions.
    • 75fe5f3 : Add X86 disassembler support for RDFSBASE, RDGSBASE, WRFSBASE, and WRGSBASE.
    • e8deca8 : PostRA scheduler fix. Clear stale loop dependencies.
    • 4563bba : whitespace
    • 1b526a9 : Add X86 disassembler support for XSAVE, XRSTOR, and XSAVEOPT.
    • 25f6dfd : Revert part of r141274. Only need to change encoding for xchg %eax, %eax in 64-bit mode. This is because in 64-bit mode xchg %eax, %eax implies zeroing the upper 32-bits of RAX which makes it not a NOP. In 32-bit mode using NOP encoding is fine.
    • 217f0e9 : Use the correct vreg here.
    • 083a8eb : Generate the dispatch code for a 'thumb' function. This is very similar to the others. They take the call site value. Determine if it's a proper value. And then jumps to the correct call site via a jump table.
    • 7011eee : Fix the check for nested IT instructions in the disassembler. We need to perform the check before adding the Thumb predicate, which pops on entry off the ITBlock queue.
    • 8540101 : Remove the old atomic instrinsics. autoupgrade functionality is included with this patch.
    • 95ce2e9 : Generate the dispatch table for ARM mode.
    • e29fa1d : Refactor some of the code that sets up the entry block for SjLj EH. No functionality change.
    • bee5d2f : Tidy up tests. Un-XFAIL file and mark individual tests as FIXME instead.
    • 5e2cbc1 : Use a thumb ORR instead of thumb2 ORR when in thumb-only mode. (Picky! Picky!) Place the immediate to OR into a register so that it works.
    • 7abb795 : Fix and clean up tests. Un-XFAIL.
    • 04f15b4 : * Set the low bit of the return address when we are in thumb mode. * Some code cleanup.
    • d6f8509 : Fix and clean up tests. Un-XFAIL.
    • d2b9f20 : Fix List-of-List Processing
    • 2f0722c : Make Test More Thorough
    • 3ef1234 : Fix -asserts build
    • 9a6eba6 : PTX: Implement signed division
    • ee57318 : Use StringSwitch.
    • 37d42af : Simplify code. No functionality change.
    • c2d18f8 : Fix Typo
    • 5d5c062 : s/tblgen/llvm-tblgen/g in a few missed places, including the tests
    • 6d1409d : Remove the Clang tblgen backends from LLVM.
    • 4df1557 : Don't require C bindings opcode numbers to be kept in sync.
    • 6831b7c : Add uwtable, returnstwice and nonlazybind to the C bindings also.
    • ff12c99 : ocaml/C bindings: type-isSized()
    • 4917ec9 : add binding to read icmp predicate
    • 4f661ab : ocaml/C bindings: getmdstring, add num_op, get_op should work on metadata too
    • c44943e : C/OCaml API to retrieve struct name.
    • 624c5ed : ocaml bindings: add llvm_ipo based on IPO.h
    • 0e68e90 : add more tests for the OCaml bindings
    • 7ea16b0 : Fix assembling of xchg %eax, %eax to not use the NOP encoding of 0x90. This was done by creating a new register group that excludes AX registers. Fixes PR10345. Also added aliases for flipping the order of the operands of xchg reg, %eax.
    • cf2adb9 : Cosmetic change.
    • de8f33c : Build system infrastructure for multiple tblgens.
    • 930193c : Add the MBBs before inserting the instructions. Doing it afterwards could lead to an infinite loop because of the def-use chains.
    • d9c1fa5 : Remove the TRI::getSubRegisterRegClass() hook.
    • 8f8aa81 : Always merge profitable shifts on A9, not just when they have a single use.
    • d78ebe1 : Remove a check from ARM shifted operand isel helper methods, which were blocking merging an lsl #2 that has multiple uses on A9. This shift is free, so there is no problem merging it in multiple places. Other unprofitable shifts will not be merged.
    • 5cbef19 : Get the proper call site numbers for the landing pads. Also remove a magic number (18) for the proper addressing mode.
    • d3b56cb : Add accessor method to check if the landing pad symbol has call site information.
    • 4413b50 : Fix a typo.
    • caa25c8 : Prefix Template Arg Names with Multiclass Name
    • 6494af4 : Vim Support for Multidefs
    • 45e7266 : Emacs Support for Multidefs
    • 112d959 : Document Multidefs
    • fd56d75 : Update Test for Multidefs
    • e5d5cdf : Add a Multidef Test
    • a6d442e : Process Multidefs
    • 6da674c : Parser Multidef Support
    • b9c29ea : Lexer Support for Multidefs
    • bda579b : Add Multidef Data Structures
    • e499a2d : Refactor Multiclass Def Processing
    • 7928608 : PR11061: Make simplifylibcalls fold strcmp("", x) correctly.
    • 30e6740 : Modify the mapping from landing pad to call sites to accept more than one call site.
    • 84fb7dd : Add an ivar that maps a landing pad's EH symbol to the call sites that may jump to the landing pad. This will be used by the back-end to generate the jump tables for dispatching the arriving longjmp in sjlj eh.
    • 6f50054 : Small refactoring. Cache the FunctionInfo-MBB into a local variable.
    • b4a0221 : Fix sub-register operand verification.
    • ef8a4c2 : Fixes PR11070 - assert in SCEV getConstantEvolvingPHIOperands.
    • 2130ab0 : Fix comment to reflect the new EH stuff.
    • 6e39290 : Remove unused DstSubIdx argument.
    • 35d9da3 : Re-commit 141203, but much more conservative.
    • e2999b4 : Revert 141203. InstCombine is looping on unit tests.
    • d2ed2d7 : Simplify EXTRACT_SUBREG emission.
    • 9bb272c : Override TRI::getSubClassWithSubReg for X86.
    • 11f1a83 : Check for the returns_twice attribute in callsFunctionThatReturnsTwice. This fixes PR11038, but there are still some cleanups to be done.
    • 30c1ff2 : Update InstCombine worklist after instruction transform is complete.
    • 591c1c6 : PTX: Fixup a case where getRegClassFor() should be used instead of custom code.
    • 2c3bef8 : Simplify INSERT_SUBREG emission.
    • 42be280 : Fix assertion string.
    • 41a796e : Make sure candidate for delay slot filler is not a return instruction.
    • da58365 : Make this test less sensitive to codegen optimizations.
    • 2f52338 : Add RA to the set of registers that are defined if instruction is a call.
    • 2dbb46a : Support a valid, but not very useful, encoding of CPSIE where none of the AIF bits are set.
    • b73a841 : Typo. Thanks Bob.
    • b0e1bc7 : Add a FIXME.
    • 62c607b : Ensure OpCode is not used uninitialized.
    • 72478e6 : Comment out a variable that is only used in commented out code.
    • 37f8065 : Remove a bunch of unused variables in the PTX backend (warned about by gcc-4.6).
    • 6478bdc : Fix compilation when using gcc-4.6. Patch by wanders.
    • 02b5e72 : GVN does simple propagation of conditions: when it sees a conditional branch "br i1 %x, label %if_true, label %if_false" then it replaces "%x" with "true" in places only reachable via the %if_true arm, and with "false" in places only reachable via the %if_false arm. Except that actually it doesn't: if value numbering shows that %y is equal to %x then, yes, %y will be turned into true/false in this way, but any occurrences of %x itself are not transformed. Fix this. What's more, it's often the case that %x is an equality comparison such as "%x = icmp eq %A, 0", in which case every occurrence of %A that is only reachable via the %if_true arm can be replaced with 0. Implement this and a few other variations on this theme. This reduces the number of lines of LLVM IR in "GCC as one big file" by 0.2%. It has a bigger impact on Ada code, typically reducing the number of lines of bitcode by around 0.4% by removing repeated compiler generated checks. Passes the LLVM nightly testsuite and the Ada ACATS testsuite.
    • 452c58f : Generalize GVN's conditional propagation logic slightly: it's OK for the false/true destination to have multiple predecessors as long as the extra ones are dominated by the branch destination.
    • 4cbc5a1 : MipsDelaySlotFiller.cpp: Appease msvc to specify llvm::next() explicitly.
    • fb77752 : Add braces around something that throws me for a loop.
    • 5ee0262 : There is no point in setting out-parameters for a ComplexPattern function when it returns false, at least as far as I could tell by reading the code.
    • e9b88cb : Also update the EH with bitcode. I missed this earlier. Thanks to Duncan for pointing it out.
    • f3baa58 : Fix a broken assert found by -Wparentheses.
    • 0c38858 : Missing test case for r141164.
    • 28ab7db : Fix disabled SCEV analysis caused r141161 and add unit test.
    • ce4984f : Add more initializers to quiet a clang warning.
    • 41e59c7 : Change C++ style comments to C style comments in X86 disassembler. Patch from Joe Abbey.
    • 13d31e0 : Avoid exponential recursion in SCEV getConstantEvolvingPHI and EvaluateExpression.
    • 176965f : Insert space.
    • 6e4e648 : Do not examine variadic or implicit operands if instruction is a return (jr).
    • 0c419a7 : Clean up function Filler::delayHasHazard.
    • 0f0c59a : Remove function Filler::insertCallUses. Record the registers used and defined by a call in Filler::insertDefsUses.
    • 7d8e04d : Clean up Filler::findDelayInstr.
    • 53120e0 : Remove function Filler::isDelayFiller. Check if I is the same instruction that filled the last delay slot visited.
    • 6f818ab : Clean up Filler::runOnMachineBasicBlock. Change interface of Filler::findDelayInstr.
    • 98f4d4d : Define a statistic for the number of slots that were filled with useful instructions (instructions that are not NOP).
    • f2f70c2 : Remove unnecessary check. isDelayFiller(MBB, I) will evaluate to true before I-getDesc().hasDelaySlot() does.
    • cfc3fb5 : Add comments and move assignment statement. If sawStore is true, sawLoad does not have to be set.
    • 6585b51 : Correct description string of enable-mips-delay-filler.
    • bb73468 : Look at the number of entries in the jump table and jump to a 'trap' block if the value exceeds that number.
    • 845d2c0 : Add TRI::getSubClassWithSubReg(RC, Idx) function.
    • 2a85015 : Checkpoint for SJLJ EH code.
    • 200a8ce : Also add imp-use,kill flags for redefined super-registers.
    • b077cf3 : Also add def,undef flags when coalescing sub-registers.
    • 2fec6c5 : Teach the MC to output code/data region marker labels in MachO and ELF modes. These are used by disassemblers to provide better disassembly, particularly on targets like ARM Thumb that like to intermingle data in the TEXT segment.
    • 9e5887b : Adding back support for printing operands symbolically to ARM's new disassembler using llvm's public 'C' disassembler API now including annotations.
    • a8512ed : Create a mapping between the landing pad basic block and the call site index for later use.
    • 7016cf6 : Allow undef flags on def operands as well as uses.
    • 0ebefdf : Tidy up formatting.
    • fbc6e40 : Doxygen-ize comments. No functionality change.
    • 168d135 : Remove unused web page.
    • fdf6bb4 : Un-XFAIL file. Comment out individual failing instructions.
    • 11ad7e5 : Replace snprintf with raw_string_ostream.
    • 20f8eb2 : Tidy up formatting.
    • e5c9338 : Un-XFAIL file. Fix incorrect CHECK lines. General format cleanup.
    • dc6c935 : Un-XFAIL file. Fix incorrect CHECK line. General format cleanup.
    • 100902c : Tidy up formatting.
    • 0c0cf47 : Un-XFAIL file. Fix incorrect CHECK line.
    • 62ea269 : Un-XFAIL the file. Disable only the individual tests that aren't working yet.
    • 58d3548 : Add method to determine if a begin label has a call site number associated with it.
    • dae7909 : Properly use const_iterator.
    • 1e97def : Update cmake list.
    • c7d93be : Tell people using the tutorial how to make it actually work.
    • 764b29e : Test Operand Arguments
    • cedaae1 : Allow Operator Arguments
    • a02dfe7 : Un-XFAIL the file. Disable only the individual tests that aren't working yet.
    • a589b1f : Unbreak CMake build.
    • 36db6fb : Tidy up. Formatting.
    • 58c6200 : Put GCOVFile and other related interface in a common header so that llvm-cov tool can share it with GCOV writer.
    • 1f121e8 : Unbreak MSVC build.
    • 8a567f1 : Fix PR9833/PR11054 (patch provided by Patrik Hägglund)
    • babf056 : Teach TableGen to infer missing register classes.
    • 01faf43 : Teach PPCInstrInfo to handle sub-classes.
    • cc0c975 : TableGen: Store all allocation orders together.
    • 6fea31e : TableGen: Privatize CodeGenRegisterClass::TheDef and Name.
    • 877b6d4 : TableGen: Don't add synthetic Records to the RecordKeeper.
    • f987425 : tblgen: add preprocessor as a separate mode
    • 34804c4 : Set operation actions to legal types only.
    • e878309 : Operations should be custom lowered only if their type is legal.
    • e97728e : The product of two chrec's can always be represented as a chrec.
    • 6744a17 : Add support in the disassembler for ignoring the L-bit on certain VEX instructions. Mark instructions that have this behavior. Fixes PR10676.
    • f143b79 : LSR should avoid redundant edge splitting.
    • 2aeb802 : whitespace
    • b3c4e26 : Remove last references to hotpatch.
    • e97552e : Exclude libLLVMTableGen.a from the shared library
    • da7e6a9 : Generic cleanup.
    • d974ea2 : Unit test for r140919, loop unroll heuristics.
    • 3207e6c : Tidy up. These tests are covered in the .s file tests now.
    • 9d39036 : ARM assembly parsing and encoding for VMOV immediate.
    • 2a3f19d : Tidy up. 80 columns.
    • ff4216a : Use the PC label ID rather than '1'. Add support for thumb-2, because I heard that some people use it.
    • f8520d5 : Don't carry over the dispatchsetup hack from the old system.
    • 6825914 : ARM parsing/encoding for VCMP/VCMPE.
    • 03dd4e8 : Fix typo in comments.
    • f7e4aef : Check-pointing the new SjLj EH lowering.
    • bbb47b3 : Move CHECK after entry label.
    • 43e43f7 : Add support for 64-bit logical NOR.
    • 2d57088 : Add support for 64-bit count leading ones and zeros instructions.
    • 631d117 : Move the grabbing of the jump buffer into the caller function, eliminating the need for returning a std::pair.
    • 5cd5ac6 : ARM assembly parsing and encoding for VMRS/FMSTAT.
    • dda4a07 : Add support for 64-bit divide instructions.
    • 0e6a24d : Add C api for Instruction-eraseFromParent().
    • f8bf43e : Update test for 141010.
    • b95ed6e : Thumb2 ADD/SUB can take SP as a destination register.
    • 2ad7668 : Clean up MipsInstrInfo::copyPhysReg and handle copies from and to 64-bit integer registers.
    • 04d3762 : Add support for 64-bit integer multiply instructions.
    • 3678793 : Add definitions of instructions which move values between 64-bit integer registers and 64-bit HI and LO registers. Fix encoding of the 32-bit versions of the instructions.
    • ae59e8c : Find the strip tool that works with the specified SDKROOT. rdar://10165908
    • c82c101 : Tidy up a bit. Formatting.
    • 581fe82 : Add support for MOVBE and RDRAND instructions for the assembler and disassembler. Includes feature flag checking, but no instrinsic support. Fixes PR10832, PR11026 and PR11027.
    • 8cf5e74 : Whitespace.
    • 1aeb7ac : Typo.
    • 25456ef : Add the returns_twice attribute to LLVM.
    • 04c5be9 : Treat VEX.vvvv as a 3-bit field outside of 64-bit mode. Prevents access to registers xmm8-xmm15 outside 64-bit mode.
    • 04b0b34 : Test updates that were supposed to go with r140993.
    • 7b22976 : Fix VEX disassembling to ignore REX.RXBW bits in 32-bit mode.
    • 1cbae18 : Reapply r140979 with fix! We never did get a testcase, but careful review of the logic by David Meyer revealed this bug.
    • 48488a6 : attempt to fix ocaml bindings: landing pads
    • 4fcc80a : Revert r140979 due to reports of bootstrap failure.
    • 8fde4f5 : Add one more case we compute a max trip count.
    • 82f131a : Fix some Intel syntax disassembly issues with instructions that implicitly use AL/AX/EAX/RAX such as ADD/SUB/ADC/SUBB/XOR/OR/AND/CMP/MOV/TEST.
    • 146c6d7 : Special case disassembler handling of REX.B prefix on NOP instruction to decode as XCHG R8D, EAX instead. Fixes PR10344.
    • 11357d4 : Add a new icmp+select optz'n. Also shows off the load(cst) folding added in r140966.
    • 267236a : Enhance a couple places where we were doing constant folding of instructions, but not load instructions. Noticed by inspection.
    • 42fbe9a : Fix typo in r140954.
    • 4f101db : Make canonicalization of ImmutableSetRef::asImmutableSet() semi-explicit.
    • 846a2dc : Fix disassembling of INVEPT and INVVPID to take operands
    • e1b4a1a : Fix disassembler handling of CRC32 which is an odd instruction that uses 0xf2 as an opcode extension and allows the opsize prefix. This necessitated adding IC_XD_OPSIZE and IC_64BIT_XD_OPSIZE contexts. Unfortunately, this increases the size of the disassembler tables. Fixes PR10702.
    • 2bfaf52 : Revert r140924 "Attempt to fix dynamic stack realignment for thumb1 functions." to appease nightly testers. Not quite there yet.
    • cbf26e3 : Moved type construction out of the loop and added an assert on the legality of the type. Formatted lines to the 80 char limit.
    • 7c78888 : Move TableGen's parser and entry point into a library
    • 2e6b97b : No one should be using the method directly. Assert if they do.
    • 405ca13 : Add a convenience method to tell if two things are equal.
    • 3320f2a : Use the ARMConstantPoolMBB class to handle the MBB values.
    • 9c18f51 : Add ARMConstantPoolMBB to hold an MBB value in the constant pool.
    • 14a1a6b : Remove dead code.
    • 9aca75c : Remove now dead methods and ivar.
    • fe31e67 : Use the new ARMConstantPoolSymbol class to handle external symbols.
    • ff4a802 : Add an ARMConstantPool class for external symbols. This will split out the support for external symbols from the base class.
    • 3f4e459 : Remove now dead methods and ivar from ARMConstantPoolValue.
    • 5bb7799 : Switch over to using ARMConstantPoolConstant for global variables, functions, and block addresses.
    • 3e944e3 : Some more refactoring.
    • 029e938 : Add a Create method that accepts 'kind' and 'pcadj' arguments.
    • f2b76aa : Refactoring: Separate out the ARM constant pool Constant from the ARM constant pool value.
    • 1cea66c : Subtarget getFeatureBits() returns a uint64_t, not unsigned.
    • 5249041 : Attempt to fix dynamic stack realignment for thumb1 functions. It is in fact useful if an optimization assumes the stack has been realigned. Credit to Eli for his assistance. rdar://10043857
    • b2ab2fa : Inlining and unrolling heuristics should be aware of free truncs.
    • 5c65541 : whitespace
    • 0bcd9c7 : Add Windows x64 stack walking support. Patch by Aaron Ballman!
    • 52e7dfa : Use precomputed BitVector for CodeGenRegisterClass::hasSubClass().
    • 0676d2a : Filecheck-ize.
    • 127f410 : Add new line at end of file.
    • e09b2a0 : When inferring the pointer alignment, if the global doesn't have an initializer and the alignment is 0 (i.e., it's defined globally in one file and declared in another file) it could get an alignment which is larger than the ABI allows for that type, resulting in aligned moves being used for unaligned loads.
    • 8de3400 : Promote comment to doxycomment. Adjust whitespace. No functionality change.
    • c8e2bb6 : Store sub-class lists as a bit vector.
    • b7359e3 : Extract a slightly more general BitVector printer.
    • e27e1ca : Move getCommonSubClass() into TRI.
    • f9a4bb7 : Compute lists of super-classes in CodeGenRegisterClass.
    • f391e9f : Correct for my over-eager delete finger.
    • 291512f : Add definition of MipsELFObjectWriter.
    • 09a2e0f : Register the MC object streamer.
    • 4b6ee7a : Register Asm backend. Add functions to MipsAsmBackend.
    • 82ea731 : Add MCELFObjectTargetWriter and MCAsmBackend classes.
    • 90b6e34 : Test More Complicated Lists
    • f6c8cbb : Test VarListElementInit:: resolveListElementReference
    • 1045a59 : Implement VarListElementInit:: resolveListElementReference
    • 310c9ea : Update CMake build.
    • 4520a10 : Initial implementation of MipsMCCodeEmitter.
    • 68e05fb : Don't modify constant in-place.
    • 62e0590 : Tracing or debug-printing a newly formed instruction should not crash.
    • 18801ec : whitespace
    • 5773fd5 : Remove unnecessary checking of register operands.
    • c7bafe9 : Add definitions of Mips64 rotate instructions.
    • cbf676b : float comparison to double 'zero' constant can just be a float 'zero.'
    • d98f838 : Constify 'isLSDA' and move a method out-of-line.
    • 0cc4a95 : Tidy up. Trailing whitespace.
    • 6f09fcf : ARM Darwin default relocation model is PIC.
    • a64556f : isCommutable should be 0 for DSUBu.
    • 98602ac : ARM Fixup valus for movt/movw are for the whole value.
    • d80c13b : Check values of immediate operands.
    • 7850dd0 : Fix a bug in compare_numeric().
    • 5bc93e7 : Add forgotten tests that the cleanup flag is cleared if there is a catch-all landingpad clause.
    • 0ba3c0a : MCJIT initialization TargetData
    • f51b7e5 : PTX: Various stylistic and code readability changes recommended by Jim Grosbach.
    • 8c1dac5 : PTX: Add programmable rounding mode specifier for int - fp conversion instrs. Also take this opportunity to clean up the rounding mode pass.
    • 0ad7b6e : Inlining often produces landingpad instructions with repeated catch or repeated filter clauses. Teach instcombine a bunch of tricks for simplifying landingpad clauses. Currently the code only recognizes the GNU C++ and Ada personality functions, but that doesn't stop it doing a bunch of "generic" transforms which are hopefully fine for any real-world personality function. If these "generic" transforms turn out not to be generic, they can always be conditioned on the personality function. Probably someone should add the ObjC++ personality function. I didn't as I don't know anything about it.
    • f16e2d4 : some 3.0 API notes
    • d398bae : Comment grammar fixes.
    • c90e149 : PTX: Attempt to cleanup/unify the handling of FP rounding modes. This requires us to manually provide Pat definitions for all FP instruction patterns.
    • 10a11ec : Instead of crashing when MCAsmInfo is NULL, add an assert.
    • 25a7d94 : Mips64 shift instructions.
    • f549ab7 : Mips64 arithmetic and logical instructions with one source register and immediate.
    • 4ebbf7b : ARM fix encoding of VMOV.f32 and VMOV.f64 immediates.
    • 203e0b1 : Precompute a bit vector of register sub-classes.
    • 7dcaa5b : Order register classes topologically.
    • a3defb0 : Fill delay slot with useful instructions. Modified from Sparc's version of delay slot filler.
    • e00897c : Create a machine basic block in the constant pool and retrieve the symbol for an MBB.
    • 4dd9b09 : Support creating a constant pool value for a machine basic block.
    • 4810528 : Fold two identical set lookups into one. No functionality change.
    • 29f018c : Switch to ArrayRefCodeGenRegisterClass*.
    • 27e0666 : When eliminating unnecessary retain+autorelease on return values, handle the case where the retain is in a different basic block. rdar://10210274.
    • 597fece : Don't eliminate objc_retainBlock calls on stack objects if the objc_retainBlock call is potentially responsible for copying the block to the heap to extend its lifetime. rdar://10209613.
    • 026fa87 : Tidy up. Formatting.
    • 5fa301b : Fix typo.
    • c0be269 : Mips64 arithmetic and logical instructions with two source registers.
    • bb5a744 : Clean up uses of switch instructions so they are not dependent on the operand ordering. Patch by Stepan Dyatkovskiy.
    • 0066f92 : Simplify.
    • a5ef699 : Clarify comments.
    • 8d6c0fb : Remove unnecessary and unused data member.
    • 7a50202 : Cosmetic changes, as per Nick's review.
    • 9a7d48a : Place this bracket according to the LLVM style.
    • 2097d70 : PTX: Fix broken shared library build
    • 92fb79b : Expand the x86 V_SET0* pseudos right after register allocation.
    • 13f4a6c : Target/ARM: Unbreak! CMake! Build!
    • adcb634 : Delete NEONMoveFix, now unused.
    • 8bb3d3c : Use ExecutionDepsFix instead of NEONMoveFix.
    • 5219f86 : typo + pasto
    • cc84cda : Remove NumImplicitOps which is now unused.
    • 0c01bc3 : LSR: rewrite inner loops only.
    • 03b0876 : whitespace
    • f47e870 : Fix build failures better.
    • 7f3654d : Fix build failure.
    • 3511ced : Move to ISelLowering.
    • d57c1bc : PTX: Add new patterns for bitconvert and any_extend
    • 75c4aba : llvm-size: Apply Chris's code review fixes.
    • 12eb3ad : Use the local we already set up.
    • 3627a46 : Rewrite MachineInstr::addOperand() to avoid NumImplicitOps.
    • caf1912 : tblgen/ClangDiagnostics: Add support for split default warning "no-werror" and "show-in-system-header" bits, which I will be adding in Clang shortly.
    • 5cd4ee7 : Revert r140731, "Define classes for unary and binary FP instructions and use them to define"
    • 9b88d2d : Tighten a ARM dag combine condition to avoid an identity transformation, which ends up introducing a cycle in the DAG.
    • d42ca46 : Define classes for unary and binary FP instructions and use them to define multiclasses.
    • cc8cf97 : Have the SjLjEHPrepare pass do some more heavy lifting.
    • 7da52dd : Fix cast.
    • 7d3e2b7 : PR11033: Make sure we don't generate PCMPGTQ and PCMPEQQ if the target CPU does not support them.
    • 32a12ba : Add llvm-size.
    • 13afc5e : Object: Add isSection{Data,BSS}.
    • f56dc28 : NULL cannot be portably used as the last argument to a function with __attribute((sentinel)), even though it usually works. Use (void*)0 instead. PR11002.
    • b18abd0 : Perform the lowering only if there are invokes.
    • 39689c8 : Ahem...actually *add* the ARMSjLjLowering pass to the pass manager.
    • 90d6ec5 : Add a note on removing LLVMC.
    • d02c42b : Introduce llvm-cov.
    • cfab2be : PTX: Fix alignment logic
    • aa75790 : Rename predicate In32BitMode to NotFP64bit and add definition of IsFP64bit.
    • d9f9583 : Remove definitions of branch-on-FP-likely instructions. They are deprecated.
    • d2d00ed : Mips64 predicate definitions. Patch by Liu.
    • f63ae21 : indvars: generalize SCEV getPreStartForSignExtend.
    • ed0e4c8 : PTX: MC-ize the PTX backend (patch 2 of N)
    • d8e4ed2 : PTX: MC-ize the PTX back-end (patch 1 of N)
    • acad68d : Check in a patch that has already been code reviewed by Owen that I'd forgotten to commit.
    • 113aa86 : Changed comments on foreign C++ exceptions (generated with type info 7), handling with references to http://sourcery.mentor.com/public/cxx-abi/abi-eh.html (r 1.22).
    • 42e5c79 : A typeid of zero means a cleanup, not a catch. This case occurs when there is both a catch and a cleanup. Correct the comment.
    • ca92159 : PTX: Simplify code. No functionality change.
    • 8adae0c : PTX: Pass param name strings per const reference.
    • adbf7b2 : Strip off pointer casts when looking at the eh.sjlj.functioncontext's argument.
    • eef108d : Bitcast the alloca to an i8* to match the intrinsic's signature.
    • 6ef9417 : Create and use an llvm.eh.sjlj.functioncontext intrinsic.
    • 2b6bd7b : In the new EH model, setup the function context and the call site info.
    • 4b6736b : Don't conditionalize execution of the SjLj EH prepare pass.
    • 52164ea : Test case for r140670: indvars should hoist sext.
    • 909ef7d : indvars should hoist [sz]ext because licm is not rerun.
    • e6fadce : PR10628: Fix getModRefInfo so it queries the underlying alias() implementation correctly while checking nocapture calls.
    • 56ab875 : Rename class and clean up source.
    • d4d4fca : Rename SSEDomainFix - lib/CodeGen/ExecutionDepsFix.
    • 6c6db25 : Remove MipsFPRound. Mips1 is no longer supported.
    • df4b35e : Remove X86-dependent stuff from SSEDomainFix.
    • 833217b : Unbreak CMake build.
    • 13fd601 : Implement TII::get/setExecutionDomain() for ARM.
    • 98e933f : Promote the X86 Get/SetSSEDomain functions to TargetInstrInfo.
    • 25ddc2b : ARM Thumb2 asm parsing [SU]XT[BH] without rotate but with .w.
    • 0481d29 : This is the start of the new SjLj EH preparation pass, which will replace the current IR-level pass.
    • 8eea461 : Embed patterns in definitions of MFC1 and MTC1 instead of defining them outside of the instruction definitions using Pat.
    • d6d9dd6 : Remove an invalid assert that is really just asserting when the scheduler emits a suboptimal schedule.
    • 5bac114 : test/CMakeLists.txt: Depend on llvm-objdump. "make check" is expected to resolve test-dependent targets on CMake build.
    • 5405d58 : Rename AddSelectionDAGCSEId() to addSelectionDAGCSEId().
    • a9390a4 : Stop emitting instructions with the name "tmp" they eat up memory and have to be uniqued, without any benefit.
    • 100a371 : Remove incorrect passage.
    • ce496ca : These symbols appear to be visible by SearchForAddressOfSymbol and no longer require special case handling. rdar://10117377
    • 9142ae2 : Add binary archive support to llvm-nm.
    • a51d7d9 : Object: Add archive support.
    • 040bff0 : Check that catch clauses have pointer type.
    • 332850d : PTX: Fix case where printed alignment could be 0
    • 98d0416 : Unbreak tests.
    • ab15bf7 : Add FCA to the lexicon.
    • f47dfba : PTX: Use external symbols to keep track of params and locals. This also fixes a couple of outstanding issues with frame objects occuring as instruction operands.
    • 8e695eb : Use existing function.
    • 237e7a2 : Fix function MipsRegisterInfo::getRegisterNumbering. Return numbers of 64-bit registers.
    • 78fec58 : Do not add the pass that restores $gp if target is Mips64.
    • 00418ea : Have the verifier check that all landingpad operands are constants.
    • a3c42f3 : Cleanup PromoteIntOp_EXTRACT_VECTOR_ELT and PromoteIntRes_SETCC. Add a new method: getAnyExtOrTrunc and use it to replace the manual check.
    • a1c415c : Revert r140463; The patch assumes that 4 x i1 is saved to memory as 4 x i8, while the decision is to bit-pack small values.
    • 2477102 : Remove some not-really-correct wording.
    • 854222f : Mark MipsPseudo isPseudo.
    • 13e0c80 : PTX: Add support for sitofp in backend
    • d552098 : Split the landing pad basic block with the correct function. Also merge the split landingpad instructions into a PHI node. PR11016
    • 80ef1b2 : Disable LSR retry by default.
    • 139e669 : Last batch of test conversions to new atomic instructions.
    • 25b689e : LSR, one of the new Cost::isLoser() checks did not get merged in the previous checkin.
    • 184944a : Convert a bunch more tests over to the new atomic instructions.
    • 2dafe20 : Remove extraneous commit garbage.
    • 7d11bd8 : LSR cost metric minor fix and verification.
    • 21733e8 : Fix an incorrect decoder test.
    • 05a5c10 : Remove old hack for compiling with gcc-4.0.
    • 256e10f : Remove incorrect testcases.
    • f40de9d : Set register class of a register according to value of HasMips64.
    • 8b4198d : Define variable HasMips64 in MipsTargetLowering.
    • 09dd60f : In single float mode, double precision FP arguments are passed in integer registers, so there is no need to check here.
    • 47d3ee5 : Convert more tests to new atomic instructions.
    • de412c3 : Convert more tests over to the new atomic instructions.
    • a69d998 : Fix grammar.
    • 99aa6b0 : Remove dead table entry.
    • 2a6b073 : Some minor (and more involved) cleanups. No real context changes.
    • 0afa009 : ASR #32 is not allowed on Thumb2 USAT and SSAT instructions.
    • ad2d46d : Convert more tests over to the new atomic instructions.
    • 236b71f : Upgrade a couple more tests to the new atomic instructions.
    • 46cb5af : Enhance alias analysis for atomic instructions a bit. Upgrade a couple alias-analysis tests to the new atomic instructions.
    • 22d54da : PTX: Fix memcpy intrinsic to handle 64-bit pointers
    • 28f7690 : Fix this test so it doesn't fail on Mac.
    • bc97f44 : PTX: Implement PTXSelectionDAGInfo
    • 63bce90 : PTX: Implement ISD::ANY_EXTEND
    • 63602ed : PTX: Fix detection of stack load/store vs. global load/store, as well as fix the printing of local offsets
    • 439780e : Fix emission of debug data for global variables. getContext() on DIGlobalVariables is not valid any more.
    • 6272c5d : PTX: Add .align tests to stack object test file
    • 22f3c59 : PTX: SM 2.0 implies +double
    • 5878850 : PTX: Fix some lingering issues with stack allocation
    • d5c3920 : PTX: Split up the TableGen instruction definitions into logical units
    • c1d8fbd : PTX: Unify handling of loads/stores
    • 6b8990d : PTX: Handle FrameIndex nodes
    • 6b97870 : Only run tests in test/CodeGen/CBackend/X86 when both X86 and CBackend are supported
    • 8f418b1 : PR11004: Inline memcpy to avoid generating nested call sequence. Un-XFAIL 2011-06-09-TailCallByVal and 2010-11-04-BigByval
    • 100d86a : Fix VEX decoding in i386 mode. Fixes PR11008.
    • c291e2f : Add target hook for pseudo instruction expansion.
    • 0eba4fe : [vector-select] Address one of the issues in pr10902. EXTRACT_VECTOR_ELEMENT SDNodes may return values which are wider than the incoming element types. In this patch we fix the integer promotion of these nodes.
    • 74e2d6e : Clean up code after renaming LowerSubregs - ExpandPostRAPseudos.
    • fb96574 : Rename LowerSubregs to ExpandPostRAPseudos.
    • dd16400 : Sort CMakeLists.txt.
    • 17e76bd : Implement Duncan's suggestion to use the result of getSetCCResultType if it is legal (this is always the case for scalars), otherwise use the promoted result type.
    • 0d5357e : [Vector-Select] Address one of the problems in 10902.
    • 8aa4b4c : Add .td file.
    • 8868fc7 : Revert change made in .gitignore.
    • 9593484 : Preparation for adding simple Mips64 instructions.
    • 51f0c76 : Only run MF.verify() with EXPENSIVE_CHECKS=1.
    • bb0a612 : sys::Process: Add a SetWorkingDirectory method.
    • b5b7c96 : LSR minor bug fix in RateRegister.
    • b0387f9 : Duncan owns dragonegg too, it's all his fault :)
    • 5adc07e : Verify that terminators follow non-terminators.
    • bde81d5 : PR10998: It is not legal to sink an instruction past the terminator of a block; make sure we don't do that.
    • 4d2a001 : Teach the Thumb2 AsmParser to accept pre-indexed loads/stores with an offset of #-0.
    • 11ebe3d : Also match negative offsets for addrmode3 and addrmode5.
    • 1f24002 : Fix incorrect disassembly test.
    • 4a71357 : Add more fixed bits to USAT16 encoding to filter out incorrect decodings.
    • 0781c1f : Post-index loads/stores in still need to print the post-indexed immediate, even if it's zero, to distinguish them from non-post-indexed instructions.
    • 31d485e : Reapply r140412 (Thumb2 reg-reg loads cannot target SP or PC), with invalid testcases updated.
    • df0caeb : Revert r140412. This affects more instructions than intended.
    • d256056 : Thumb2 register-shifted-register loads cannot target the PC or the SP.
    • b3e3b00 : Add getTreeFactory() to ImmutableSet to allow construction of ImmutableSetRef from an ImmutableSet object.
    • 45b73e2 : Implement N32/64 calling convention. Patch by Liu.
    • 792016b : Make FGR64RegisterClass available if target is Mips64.
    • b1dcff0 : Add definitions of 64-bit register files. Add code for returning Mips64's sets of callee-saved registers and reserved registers.
    • a574556 : PTX: Fix parameter order bug
    • 2e3441e : Fix a couple of 80 column violations. patch contributed by Jia Liu!
    • dc0baf9 : PTX: Cleanup unused code in PTXMachineFunctionInfo
    • d7070fe : PTX: Fix another 80-column violation
    • 75d8095 : PTX: Handle function call return values
    • 0353dab : Fix 80 column violations.
    • 04aa4ae : Implement Chris's suggestion of legalizing the various SSE and AVX hadd/hsub intrinsics into the new fhadd/fhsub X86 node.
    • 9cb5086 : Modified demo to use 3.0 resume instruction vs calling _Unwine_Resume.
    • e953a64 : PTX: Start fixing function calls
    • d3dec06 : PTX: Remove PTX calling convention files
    • 1cde87d : [PATCH 2/2] PTXInstrInfo.td PTXIntrinsicInstrInfo.td 80 columns
    • 27f08fc : PTX: Generalize handling of .param types
    • 04b5ebc : PTX: Cleanup unused code in the PTXMFInfoExtract pass
    • 4c19e12 : Tweak the handling of MERGE_VALUES nodes: remove the need for DecomposeMERGE_VALUES to "know" that results are legalized in a particular order, by passing it the number of the result being legalized (the type legalization core provides this, it just needs to be passed on).
    • c56d65f : Vector-Select: Address one of the problems in pr10902. Add handling for the integer-promotion of CONCAT_VECTORS.
    • 4da632e : Don't allow 32-bit only instructions to be disassembled in 64-bit mode. Fixes part of PR10700.
    • aaa9fc2 : Add definitions of 64-bit int registers.
    • 373e3a4 : Do not rely on the enum values of argument registers A0-A3 being consecutive.
    • d8282cd : We're no longer going to bother supporting platforms that don't support C89.
    • 7666c7e : PR10989: Don't print .hidden on Windows.
    • a6176ad : PR10991: make fast-isel correctly check whether accessing a global through an alias involves thread-local storage. (I'm not entirely sure how this is supposed to work, but this patch makes fast-isel consistent with the normal isel path.)
    • 40eda46 : Make changes in instruction and pattern definitions so that tablegen does not complain it cannot infer types in patterns. Fix a mistake in definition of SDT_MipsExtractElementF64.
    • db01cdd : Add new files to CMake.
    • 7b316c9 : Fix SimplifySelectCC to add newly created nodes to the DAGCombiner worklist, as it may be possible to perform further optimization on them.
    • 4bd8987 : Add support for GR32 - FR32 cross class copies.
    • da7d6cc : Update CMake build.
    • 124e182 : Start stubbing out MCModule and MCAtom, which provide an API for accessing the rich disassembly of a complete object or executable. These are very much a work in progress, and not really useful yet.
    • 08f5cdf : Constrain register classes instead of emitting copies.
    • 91fb536 : Add a MinNumRegs argument to MRI::constrainRegClass().
    • 17470be : Synthesize SSE3/AVX 128 bit horizontal add/sub instructions from floating point add/sub of appropriate shuffle vectors. Does not synthesize the 256 bit AVX versions because they work differently.
    • d102a03 : PR10987: add a missed safety check to isSafePHIToSpeculate in scalarrepl.
    • 5d8f43f : Resynch intro to section with copyright section.
    • 98f49c4 : Print parentheses in next line.
    • ebb90db : Change subreg index of AFPR64 from sub_fpeven to sub_32 per Jakob's comment.
    • 95a091a : Define a new sub-register index sub_32 for accessing the 32-bit sub-register of a 64-bit integer register. Move the subreg index definitions to the beginning of the file.
    • 7113955 : Use the C personality function instead of the C++ personality function.
    • 26bcc70 : Print three closing parentheses when Kind is either VK_Mips_GPOFF_HI or VK_Mips_GPOFF_LO.
    • d27fda4 : Add F31 to the set of callee-saved registers.
    • 6bbba3c : Fix for warnings: ignoring return value of ‘write’, declared with attribute warn_unused_result.
    • 4e41416 : Fix typo.
    • 4ddde0c : PTX: fixup test cases for register changes
    • 7c9dd62 : PTX: Remove physical register defs
    • 5422a0f : PTX: Use .param space for device function return values on SM 2.0+, and attempt to fix up parameter passing on SM 2.0
    • 05591be : PTX: Fix style issues
    • 297984d : PTX: Fixup codegen to handle emission of virtual registers.
    • 40466cc : PTX: Customize codegen passes in backend
    • 247ee00 : PTX: Add new PTX-specific register allocator that keeps virtual registers instead of allocating physical registers.
    • 8550071 : Converted Exception demo over to using new 3.0 landingpad instruction. This was compiled and tested on OS X 10.7.1. It was not tested on LINUX. In addition the defined OLD_EXC_SYSTEM was not tested with this version.
    • aae66fa : This is a hack to get the demo working with the new 3.0 exception infrastructure. As this makes the demo no longer a demo, and especially not a demo on how to use the llvm exception mechanism, this hack will shortly be changed to use the new 3.0 exception infrastructure. However for the time being this demo is an example on how to use the AutoUpgrade UpgradeExceptionHandling(...) function on 3.0 exception handling code.
    • adf01b3 : Fix register printing in disassembling of push/pop of segment registers and in/out in Intel syntax mode. Fixes PR10960
    • bb7d289 : Add definition of 64-bit floating registers used for Mips64.
    • 2c2ccbf : The SSE version differences for fmin/fmax are more involved than I thought.
    • e33ca9c : Add enums and functions for symbols Mips64 uses.
    • 74f3501 : X86: Don't form min/max nodes if the target is missing SSE.
    • 459cad2 : Mips64 aligns stack on 16-byte boundary.
    • c56f5ea : Remove unnecessary condition check.
    • 6126870 : Turns out that Thumb2 ADR doesn't need special printing like LDR does. Fix other test failures I caused.
    • e136872 : Print out immediate offset versions of PC-relative load/store instructions as [pc, #123] rather than simply #123.
    • 1dd4e56 : Do not unnecessarily use AT_specification DIE because it does not add any value.
    • ef01f32 : Fix for DbgInfoPrinter.cpp:174:12: warning: ‘LineNo’ may be used uninitialized in this function.
    • cccfd19 : The last verification check for the new EH model.
    • afbaf48 : llvm-objdump: Detach symbol listing from section enumeration for mach-o.
    • 3ca2ad1 : Attempt to update the shadow stack GC pass to the new EH model.
    • 15c9a1f : X86Disassembler: if verbose logging is going to nulls(), disable logging completely.
    • fe59d85 : Tidy up. Whitepsace.
    • 91b60c1 : Fix some simple copy-paste errors in MBlaze ASM Parser and Makefile. patch contributed by Jia Liu!
    • 91c603b : llvm-objdump: Take the data from the right object when there's no dSYM around.
    • 519020a : These do not need to be conditional on the presence of CommentStream, as they have a fallback path now.
    • 4d77ae6 : Remove +.
    • 0b4a615 : Re-enable some of the disabled tests. Use FileCheck instead of grep to check output.
    • 0e64f81 : Undo a change made in r140254. MipsArchVersion needs to be initialized to Mips32.
    • 1d13d9e : DWARF: avoid unnecessary map lookups.
    • 64ac73b : fix comment
    • d7e0cea : add another testcase for pr10902
    • 47c40a2 : MipsArchVersion does not need to be in the initialization list and MipsABI should be initialized to UnknownABI.
    • 1147248 : [VECTOR-SELECT] Address one of the bugs in pr10902.
    • 9c6cdf4 : Insert a sanity check on the combining of x86 truncing-store nodes. This comes to replace the problematic check that was removed in r139995.
    • b5b8d20 : llvm-objdump: Fix use after free.
    • e55e64f : Test commit
    • 23946fc : Change:
    • 2464810 : Add a base class for Mips TargetMachines and add Mips64 TargetMachines.
    • 8c1b4bf : Set ABI if it hasn't been set on the command line. Check if architecture & ABI combination is valid.
    • 50fa74e : Fix typo.
    • 3be654f : Lower ARM adds/subs to add/sub after adding optional CPSR operand.
    • e23dc9c : whitespace
    • 8c93097 : llvm-objdump: Output line info next to the disassembly if available.
    • ab6acef : DebugInfo: Add equality operators and default constructor to DILineInfo.
    • 73ec952 : Remove the rest of the compiler checking from the top level configure script. Only the testsuite project needs to know this information.
    • 317eaf1 : In the disassembler C API, be careful not to confuse the comment streamer that the disassembler outputs annotations on with the streamer that the InstPrinter will print them on.
    • eeef9e8 : Remove llvm-gcc and various compiler handling from llvm. It's not needed here anymore and has been migrated to the test-suite project.
    • 5663344 : Change the names of functions isMips* to hasMips*.
    • 4d1d86b : This test is completely invalid with the modern EH model. Delete.
    • 79782fc : Make sure IPSCCP never marks a tracked call as overdefined in SCCPSolver::ResolvedUndefsIn. If we do, we can end up in a situation where a function is resolved to return a constant, but the caller is marked overdefined, which confuses the code later.
    • e97190f : Add a DAGCombine for subvector extracts to remove useless chains of subvector inserts and extracts. Initial patch by Rackover, Zvi with some tweak done by me.
    • f4b841d : Revert r140097, working on a better approach
    • 5f2318e : lib/Linker: add support of deps which does not end with ".so". It happens (for example) when you want to have a dependency on the .so with the specific version, like liblzma.so.1.0.0 or libcrypto.so.0.9.8.
    • 149f29f : Simplify max/minp[s|d] dagcombine matching
    • e3039de : Update this test to the new EH model.
    • f0dc257 : Relax this condition.
    • b7e807f : Place the check for an exit landing pad where it will be run on both code paths through the if-then-else.
    • e4b3ef4 : Fix typos.
    • 84b6706 : Omit extracting a loop if one of the exits is a landing pad.
    • aabc6a9 : Remove the hack to check UNAME_RELEASE when identifying the Darwin version.
    • 4e42335 : Tidy up a bit more, fix tab and remove trailing whitespaces
    • 448d986 : The wrong relocation was being emitted for several SSSE3 instructions. This fixes PR10963. Thanks to Benjamin for finding the wrong tablegen declaration.
    • 77169a9 : Tidy up code!
    • 0d18174 : Fix a bug introduced during refactoring a couple of months ago. Cortex-M3 does not support Thumb2 dsp instructions. rdar://10152911.
    • 1daa5be : Initial Mips64 support. Patch by Liu with some modifications.
    • 9914f4a : Update to new EH model.
    • 8c93d5b : Check the terminator, not the basic block.
    • 2f1cd85 : When extracting a basic block that ends in an 'invoke' instruction, we need to extract its associated landing pad block as well. However, that landing pad block may have more than one predecessor. So split the landing pad block so that individual landing pads have only one predecessor.
    • 9e7013a : Use ArrayRef instead of an explicit 'const std::vector &'.
    • 680018f : If simple ownership works then friendship is not required.
    • 51bae90 : Use ArrayRef instead of 'const std::vector' to pass around the list of basic blocks to extract.
    • 16c19a1 : Update GCOVLines to provide interfaces to write line table and calculate complete length.
    • f34fa6f : U is good enough
    • b6777ea : Fix comments.
    • e5a7896 : Remove mention of llvm-gcc and llvm-g++. -Ministry of Truth
    • 83a8031 : Restore hasPostISelHook tblgen flag.
    • f83f0f8 : Eliminate sign-comparison warnings in APInt
    • 7030368 : Add mips64 & mips64el to Triple. Patch by Liu with modifications.
    • 29d9610 : Update comment.
    • 68155d3 : Use StringRef instead of std::string.
    • a894c8e : llvm-objdump: factor code better, add comments.
    • 9d1a3de : Port over more Thumb2 encoding tests to decoding tests.
    • 865375c : Eliminate unnecessary copy of FileName from GCOVLines. GCOVLines is always accessed through a StringMap where the key is FileName.
    • ec6f255 : There is no need to write a local utility routine to find subprogram info if the utility routine is already available in DebugInfo.
    • 6aaf056 : test/CodeGen/X86/avx-minmax.ll: Unbreak Win32.
    • 3699261 : Extend changes from r139986 to produce 256-bit AVX minps/minpd/maxps/maxpd.
    • 16ddc06 : include/llvm/Config/llvm-config.h.in: Add the entry LLVM_PATH_XDOT_PY, for consistency against llvm-config.h.cmake.
    • 81da2e1 : include/llvm/Config: Reorder LLVM_HAS_ATOMICS along config.h.in for consistency.
    • f9ef3b6 : include/llvm/Config/config.h.cmake: Unbreak CMake build to tweak LLVM_HAS_ATOMICS.
    • 4815d56 : ARM isel bug fix for adds/subs operands.
    • 3af7a67 : whitespace
    • a54b3ac : Remove empty directories.
    • 3c05196 : Remove some missed references to dead intrinsics.
    • 4a065dd : Update the EH doc to reflect the new EH model.
    • 50172e7 : Nuke obsolete test file.
    • ac9c2aa : Thumb2 assembly parsing and encoding for WFE/WFI/YIELD.
    • 50f1c37 : Thumb2 assembly parsing and encoding for UXTAB/UXTAB16/UXTH/UXTB/UXTB16/UXTH.
    • 78d0835 : More llvmc bits. Spotted by Benjamin on IRC.
    • 33fe8eb : Remove from cmake too.
    • eae5a13 : Remove more of llvmc and dependencies.
    • 400b624 : Thumb2 assembly parsing and encoding for USUB8/USUB16.
    • 6053cd9 : Thumb2 assembly parsing and encoding for USAX.
    • 653419f : Thumb2 assembly parsing and encoding for USAT16.
    • a7e5b01 : Thumb2 assembly parsing and encoding for USAT.
    • 8c98984 : Remove incorrect comments. These are not disassmebly only patterns.
    • ae13ba7 : Tidy up.
    • ad7d744 : Thumb2 assembly parsing and encoding for UQSAD8/USADA8.
    • 73e019e : Thumb2 assembly parsing and encoding for UQSUB16/UQSUB8.
    • ab3bf97 : Thumb2 assembly parsing and encoding for UQASX/UQSAX.
    • d7e2785 : Thumb2 assembly parsing and encoding for UQADD16/UQADD8.
    • 6ddbcdf : Remove llvmc from CMake as well.
    • abb8aac : Thumb1 convenience aliases for disassembler round-trip testing. CPS instruction.
    • 278cbfb : Attempt to fix -mtriple=i686-{cygwin|mingw|win32} regressions. Nakamura, if this doesn't work, please provide more details.
    • 2621542 : Thumb CPS definition is not disassembler only.
    • 0efe213 : Thumb2 range check on CPS mode immediate.
    • d9346fb : tMOVSr is not allowed in an IT block either.
    • 9ead2c0 : Update to the new EH syntax.
    • 9f666b5 : CPS instructions are UNPREDICTABLE inside IT blocks.
    • 0b9a909 : Dramatically reduce this testcase.
    • 32f3689 : Tidy up comments.
    • d91c6e0 : Fix PR10949. Fix the encoding of VMOVPQIto64rr.
    • 97136c9 : Based on the small opt Zvi's patch was trying to achieve, eliminate 128-bit undef subvector insertion into a 256-bit vector
    • 9c67127 : Tidy up a bit.
    • d5d0e81 : Thumb2 assembly parsing and encoding for UMAAL/UMLAL/UMULL.
    • a846585 : Revert r140083 and r140084 until buildbots can be fixed.
    • f117506 : Remove llvmc and assorted build machinery for it.
    • 9546de6 : Thumb2 assembly parsing and encoding for UHSUB16/UHSUB8.
    • 6729c48 : Thumb2 assembly parsing and encoding for UHASX/UHSAX.
    • 2c1ef5b : Thumb2 assembly parsing and encoding for UHADD16/UHADD8.
    • 6451cbf : Thumb2 assembly parsing and encoding for UBFX.
    • 4032eaf : Thumb2 assembly parsing and encoding for UASX.
    • 39b4166 : Update test to remove the 'unwind' instruction.
    • ad02705 : If we are extracting a basic block that ends in an invoke call, we must also extract the landing pad block. Otherwise, there will be a situation where the invoke's unwind edge lands on a non-landing pad.
    • 11f23c1 : Fix copy/past-o. Gotta remember that 'modify' step...
    • 661daa4 : Thumb2 assembly parsing and encoding for UADD16/UADD8.
    • aa70695 : Thumb2 assembly parsing and encoding for TST.
    • 04c7877 : Thumb2 TBB and TBH instructions are only allowed at the end of IT blocks, not in the middle.
    • 7f739be : Thumb2 assembly parsing and encoding for TBB/TBH.
    • 463158f : Replace uses of unwind with unreachable for the same effect.
    • 803c9d3 : Replace more uses of 'unwind' in the tests with calls to landingpad and resume. Note that some of these tests were basically dead.
    • 17569fe : Some additional tests for Thumb atomic load and store (which I somehow forgot to commit earlier).
    • c6b8ba8 : Fix an infinite loop where a transform in InstCombiner::visitAnd claims a construct is changed when it is not. (See included testcase.)
    • 1494c49 : Thumb2 assembly parsing and encoding for TEQ.
    • 97dc60b : Match X86ISD::FSETCCsd and X86ISD::FSETCCss while in AVX mode. This fix PR10955 and PR10948.
    • f2d15db : This testcase is dead. It doesn't inline even if I add the 'alwaysinline' attribute to the @foo function.
    • 776d993 : Regenerate configure.
    • 627445f : Rename LLVM_MULTITHREADED define and fix build without threads.
    • bc80e94 : Tidy up a bit.
    • 30b8b97 : Remove FIXME. TBB/TBH are Thumb mode only instructions.
    • 326efe5 : Thumb2 assembly parsing and encoding for SXTB/SXTB16/SXTH.
    • da7f5f1 : Make changes to avoid creating nested CALLSEQ_START/END constructs, which aren't yet legal according to comments in LegalizeDAG.cpp:227.
    • bcc1a73 : Nope, there's another one!
    • 49ca96d : Missed one instance of implicit pointer conversion.
    • 586a55a : Silence -Wsign-compare warnings from GCC.
    • 4d90638 : Try to make MSVC 2010 happy.
    • 061c3c4 : Specify an additional fixed bit in the Thumb2 SSAT encoding to prevent the decoder from emitting gibberish for this invalid encoding.
    • c3d3598 : Fix a typo in the bitcode reader in the handling of atomic stores. Reported by David Meyer on llvmdev.
    • fb12f35 : ARM asm parsing should handle pre-indexed writeback w/o immediate.
    • d9746fe : Better Error Reporting
    • f22e672 : X86 has asterisk-free inline asm support now.
    • ecd1c55 : Handle STRT (and friends) like LDRT (and friends) for decoding purposes. Port over additional encoding tests to decoding tests.
    • 8a8d28b : Thumb2 assembly parsing and encoding for SXTAB/SXTAB16/SXTAH.
    • 0b8b771 : Add a MachO-specific "mode" to llvm-objdump, that, if enabled, gathers additional information that are only available on MachO.
    • a182be9 : MCInstrAnalysis: Don't crash on instructions with no operands.
    • 24f48ec : [indvars] Fix PR10946: SCEV cannot handle Vector IVs.
    • 9883acd : Thumb2 assembly parsing and encoding for SVC.
    • 7649b0b : Thumb2 assembly parsing and encoding for SUB(register).
    • 76034c5 : Added regression test for bug #10869.
    • 92ec8e1 : Add Win32 support to llvm::llvm_execute_on_thread(). Thanks to Aaron Ballman!
    • 0a3eb60 : Claimed.
    • ca6f296 : Fix typos in my prev commit, found by Tobi.
    • 354efd8 : setOperationAction should be done on the return value of the type, not the operands.
    • bed95e0 : Remove obsolete .pod files.
    • 88816ec : Fix up the formating and change llvm-gcc to clang.
    • ea55c83 : Remove mention of llvm-gcc/llvm-g++ from doc.
    • 91e43fd : When promoting integer vectors we often create ext-loads. This patch adds a dag-combine optimization to implement the ext-load efficiently (using shuffles).
    • b6266fb : white space cleanups
    • 89af15e : Fix typo by changing Lower256IntVETCC to Lower256IntVSETCC.
    • 5778fef : Apply Duncan's test fix from r139986 to the avx version of that test too.
    • 6bcd219 : Synthesize x86 max/min instructions also for vectors (i.e. produce maxps and maxpd). This broke the sse41-blend.ll testcase by causing maxpd to be produced rather than a cmp+blend pair, which is the reason I tweaked it. Gives a small speedup on doduc with dragonegg when the GCC vectorizer is used.
    • 2c693dc : Describe more AVX 128-bit convert instructions without patterns to have mayLoad = 1
    • cb77551 : Bitfield mask instructions are unpredictable if the encoded LSB is higher than the encoded MSB.
    • be290af : Add a testcase for another corner-case decoding.
    • 8b22778 : Fix bitfield decoding based on Eli's feedback.
    • 166e053 : Add ImmutableMapRef and ImmutableSetRef, which consolidate Immutable[Map,Set] and its Factory. This may eventually replace Immtuable[Map,Set].
    • f67e855 : Thumb2 assembly parsing and encoding for SUB(immediate).
    • e4f2df9 : Thumb2 pre-indexed loads/stores use the restricted GPR set for Rt.
    • 89db0f6 : Fix disassembly of Thumb2 BFI instructions with bit range of [0, 32).
    • 47313df : Thumb2 assembly parsing and encoding for STRT.
    • 18ceae2 : Thumb2 assembly parsing and encoding for LDRHT/STRHT.
    • 4a1d200 : Thumb2 assembly parsing and encoding for STREX/STREXB/STREXH/STREXD.
    • e45451e : Thumb2 assembly parsing and encoding for STRD.
    • 75d7428 : Simplify comment. There's no Thumb LDRD(register) encoding. That's ARM only.
    • 8a28bdc : Add fixed bits to correctly distinguish Thumb2 SSAT/SSAT16's.
    • e041af7 : Thumb2 assembly parsing and encoding for STRBT.
    • c71ed78 : Thumb2 assembly parsing and encoding for STRH.
    • 59c5076 : Remove test of undocumented format.
    • 76ca6d9 : Thumb2 assembly parsing and encoding for STRB.
    • 7291272 : Add mayLoad attribute to AVX convert instructions, since non of them are declared with load patterns. This fix the crash in PR10941. No testcases, since a fold is triggered and then converted back to the register form afterwards.
    • 2e7a941 : Shuffle a few more thumb2 tests to match the comment headings.
    • 5320b40 : Thumb2 tests for STR(literal), STR(register) and STR pre/post indexed immediate.
    • 0bb7c6e : Shuffle a few tests around.
    • ee2c2a4 : Thumb2 assembly parsing and encoding for STR.
    • 4e0a55d : Add -rfunc and -rglob options to llvm-extract to support regular expression matching.
    • 947a24c : Tidy up. 80 columns.
    • 705b48f : Fix disassembly of Thumb2 LDRSH with a #-0 offset.
    • 642caea : Thumb2 assembly parsing and encoding for STR(immediate).
    • 36343d8 : Thumb2 assembly parsing and encoding for STMDB.
    • 08ecb71 : Fix PR10884.
    • 8213c96 : Thumb2 assembly parsing and encoding for STMIA.
    • ffee572 : Move the AC_PROG_CC checks earlier in the configure file. The lateness of the original check meant that configure was caching the default CC check and using that instead of the result of AC_PROG_CC in both configure checks and during compilation.
    • 04f138e : Migrate this to use clang by default as well.
    • 48dbeec : We now look for clang, then llvm-gcc, then gcc as our compiler. We don't need this anymore.
    • 4263483 : Have the llvm configure process look for clang, then llvm-gcc, and then gcc on all platforms.
    • 3335029 : Thumb2 assembly parsing and encoding for SSUB16/SSUB8.
    • 50bd470 : Thumb2 assembly parsing and encoding for SSAX.
    • ecc9b5e : Fix a minor bug in fs::create_directories. Patch by Albert Wong.
    • 9f4ddb3 : Thumb2 assembly parsing and encoding for SSAT16.
    • b105b99 : Thumb2 assembly parsing and encoding for SSAT.
    • 05ec8f7 : Thumb2 assembly parsing and encoding for SRS.
    • dea8412 : Thumb2 assembly parsing and encoding for SMMUSD/SMUSDX.
    • 41ca75b : Thumb2 assembly parsing and encoding for SMMULWB/SMULWT.
    • 3443ed5 : Thumb2 assembly parsing and encoding for SMMULL.
    • 3c4c879 : Fix comment.
    • d727148 : Thumb2 assembly parsing and encoding for SMULBB/SMULBT/SMULTB/SMULTT.
    • c9592cb : Thumb2 assembly parsing and encoding for SMMUAD'dib.
    • f3578a8 : Thumb2 assembly parsing and encoding for SMMUL/SMMULR.
    • a610d61 : Port over more Thumb2 assembly tests to disassembly tests.
    • 1070278 : Port over more Thumb2 assembly tests to disassembly tests.
    • cb574bb : Thumb2 assembly parsing and encoding for SMMLS/SMMLSR.
    • 3b61d23 : Thumb2 assembly parsing and encoding for SMMLA/SMMLAR.
    • 7ff2472 : Thumb2 assembly parsing and encoding for SMLSLD/SMLSLDX.
    • 920ad2b : Thumb2 assembly parsing and encoding for SMLSD/SMLSDX.
    • f566ca7 : Thumb2 assembly parsing and encoding for SMLAWB/SMLAWT.
    • 231948f : Thumb2 assembly parsing and encoding for SMLALD/SMLALDX.
    • 4f2999b : Thumb2 assembly parsing and encoding for SMLALBB/SMLALBT/SMLALTB/SMLALTT.
    • db7e2e5 : Kill some dead code.
    • fb9cffe : Tidy up a bit.
    • 837fc5e : Thumb2 assembly parsing and encoding for SMLAL.
    • cc32efd : Test case trial and error. Not sure the proper way to check MBB names.
    • 17bd2c5 : Reduced a stronger test case for coalescer bug PR10920.
    • 76f58d2 : Namespacify.
    • e74711b : Thumb2 assembly parsing and encoding for SMLAD/SMLADX.
    • ebac0c1 : Spill mode: Hoist back-copies locally.
    • 69cf1ca : Disable local spill hoisting for non-killing copies.
    • 246ae02 : Thumb2 assembly parsing and encoding for SMLABB/SMLABT/SMLATB/SMLATT.
    • f08084b : Thumb2 assembly parsing and encoding for SHSUB16/SHSUB8.
    • eeca758 : Remove incorrect comments.
    • 98c5dda : Don't attach annotations to MCInst's. Instead, have the disassembler return, and the printer accept, an annotation string which can be passed through if the client cares about annotations.
    • 71280b5 : use 64-bit types instead of off_t/size_t to avoid the issue when gold plugin is built with Large File Support (sizeof(off_t) == 64 on i686) and the rest of LLVM is built w/o Large File Support (sizeof(off_t) == 32 on i686) which corrupts the stack.
    • 6b5b79c : Add a fixme note!
    • 5a6370f : Thumb2 assembly parsing and encoding for SHADD16/SHADD8.
    • c075d45 : Thumb2 assembly parsing and encoding for SHASX/SHSAX.
    • 74bf18c : Minor cleanup.
    • c9935f3 : Unbreak the build for compilers that don't include cstdint everywhere.
    • d16160f : Thumb2 assembly parsing and encoding for SEV.W.
    • 7cc1566 : Use a more efficient lowering for Unordered/Monotonic atomic load/store on Thumb1.
    • b4e905d : Add the remaining AVX versions of instructions to X86InstrInfo, this time for describing high latency ones and for recognizting loads from the same base pointer
    • 56019a3 : Thumb2 assembly parsing and encoding for SEL.
    • 9013db3 : DWARF: Reset the state after parsing a line table prologue and remove an unnecessary lookup.
    • 7ecedac : Thumb2 assembly parsing and encoding for SBFX.
    • cd2857e : Factor out partial register update checks for some SSE instructions. Also add the AVX versions and add comments!
    • 331120b : Some legalization fixes for atomic load and store.
    • 6b3ae46 : llvm-dwarfdump: Add an option to print out line info for a specific address
    • 356c759 : Add some missing 'CHECK' lines and tidy up others.
    • b351456 : CommandLine: Add support for 64 bit unsigned integer options.
    • f5b0acc : DWARF: Don't crash when looking up an invalid address.
    • b9edad0 : Add an option to disable spill hoisting.
    • fd8b851 : Thumb2 assembly parsing and encoding for SBC.
    • e4e4a93 : Thumb2 assembly parsing and encoding for SASX.
    • b0598b1 : Reapply r139759. Disable IV rewriting by default. See PR10916.
    • ed15ab1 : Thumb2 assembly parsing and encoding for SADD16/SADD8.
    • 191d33f : Thumb2 assembly parsing and encoding for RSB.
    • 101b1c5 : DWARF: Put all the pieces we have together and provide a single accessor to DIContext that provides line information when given an address.
    • c26ed9b : DWARF: Remove accessors that parse the whole line table section in one go, this can't possibly work.
    • aba8015 : Thumb2 assembly parsing and encoding for RRX.
    • 5260be1 : Thumb2 assembly parsing and encoding for ROR.
    • 689b86e : Thumb2 assembly parsing and encoding for REV16/REVSH.
    • 8f29e69 : The the MC disassembler C API to print in verbose mode. Perhaps there should be a parameter to request verbose mode?
    • ede042d : Add support for stored annotations to MCInst, and provide facilities for MC-based InstPrinters to print them out. Enhance the ARM and X86 InstPrinter's to do so in verbose mode.
    • 01afdb3 : VirtRegMap is counting spill slots, not register spills.
    • 0c4b9ff : Change all checks regarding the presence of any SSE level to always take into consideration the presence of AVX. This change, together with the SSEDomainFix enabled for AVX, makes AVX codegen to always (hopefully) emit the same code as SSE for 128-bit vector ops. I don't have a testcase for this, but AVX now beats SSE in performance for 128-bit ops in the majority of programas in the llvm testsuite
    • 41a9635 : Enable SSEDomainFix pass for AVX mode.
    • d205f7a : Count correctly when a COPY turns into a spill or reload.
    • 1b69a12 : Thumb2 assembly parsing and encoding for REV.
    • 4bab3c7 : Thumb2 assembly parsing and encoding for RBIT.
    • 3e3a9c7 : Thumb2 assembly parsing and encoding for signed saturating arithmetic insns.
    • fe80f1d : DWARF: Print line tables per compile unit, so they get the right address size.
    • 10ec650 : Assmebler symbol attribute directives don't work on temporary symbols.
    • 79c40a0 : Count inserted spills and reloads more accurately.
    • 34f864f : DWARF: wire up .debug_str dumping.
    • 70796ca : Handle missing newline at EOF more gracefully in MC AsmLexer.
    • 6b6e32d : Trace through sibling PHIs in bulk.
    • b6e9a83 : ARM support the pre-UAL mnemonic 'qsubaddx' for 'qsax.'
    • 07d7f3d : Re-order test.
    • 57b21e4 : Thumb2 push/pop mnemonic recognition.
    • a1dd305 : Use getPrevSlot() instead of getPrevIndex().
    • 031432f : Speed up LiveIntervals::shrinkToUse with some caching.
    • 9b82d50 : Revert r139782, "RemoveCopyByCommutingDef doesn't need hasPHIKill()."
    • 75c6308 : DWARF: Make DIE printing more bulletproof.
    • 2460f32 : Despite what the GCC wiki says, a quick search shows that DW_AT_GNU_template_name = 0x2110, not 0x2108. That would explain those attr #0x2110 under the DW_TAG_GNU_template_template_param I'm seeing. Migrate from documented values to reality.
    • 3a4178e : Add some more DWARF extensions from: 1. http://gcc.gnu.org/wiki/TemplateParmsDwarf 2. ftp://ftp.software.ibm.com/software/os390/czos/dwarf/mips_extensions.pdf
    • df8412c : Stop verifying hasPHIKill() flags.
    • de07abe : RemoveCopyByCommutingDef doesn't need hasPHIKill().
    • 4ea24e9 : It is safe to remat a value killed by phis.
    • 573a32d : Leave hasPHIKill flags alone in LiveInterval::RenumberValues.
    • f59c532 : Update Dwarf enums list for DWARF 4. Note that DW_TAG_rvalue_reference_type is officially 0x42, not 0x41.
    • 7b97442 : DWARF: Print the number for unknown abbrev fields.
    • 42180e8 : DWARF: Fail gracefully when encountering unknown values in an abbrev.
    • 6bc4e71 : Give structs with virtual methods a virtual destructor.
    • 068d9a5 : DWARF: Silence GCC -Wsign-compare warning.
    • 89aedba : DWARF: Fix indentation.
    • 7393c7f : DWARF: Include algorithm explicitly.
    • b848e97 : DWARF: Add basic support for line tables.
    • c82751d : Make demanded-elt simplification for shufflevector slightly stronger. Spotted by inspection.
    • b1afbac : [regcoalescing] bug fix for RegistersDefinedFromSameValue.
    • 322ea08 : Fix the code creating VZEXT_LOAD so that it creates the right memoperand. Issue spotted in -debug output. I can't think of any practical effects at the moment, but it might matter if we start doing more aggressive alias analysis in CodeGen.
    • f18544d : Thumb2 assembly parsing and encoding for PLI.
    • f83e297 : Thumb2 assembly parsing and encoding for PLD.
    • d26d6b6 : Update the comment for system_temp_directory() to indicate when it will ignore the erasedOnReboot option, and properly escape the backslash in "C:\TEMP". Thanks to Aaron and Francois.
    • 0b69247 : Thumb2 assembly parsing and encoding for PKH.
    • 21a05e7 : ARMv7a has the PKH instructions.
    • 734a67c : Add support to emit debug info for C++0x nullptr type.
    • e1d58a6 : ARM tighten up the register classes for the PKH instructions.
    • 8adf620 : Fix a crasher in Thumb2 MOV-immediate encoding for certain inputs.
    • 544e412 : Include limits.h to make sure PATH_MAX is known on Solaris 10. Patch by Joakim Johansson!
    • 0b3ed6d : Thumb2 assembly parsing and encoding for ORR.
    • b72504b : Thumb2 assembly parsing and encoding for ORN.
    • 5c5eca3 : Thumb2 assembly parsing and encoding for NOP.W.
    • d32872f : Thumb2 assembly parsing and encoding for MVN.
    • 34626ac : Nested IT blocks are UNPREDICTABLE. Mark them as such when disassembling them.
    • 64944f4 : Thumb2 assembly parsing and encoding for MUL.
    • 10df806 : DWARF: Generate the address lookup table from the DIE tree if .debug_aranges is not available.
    • 55cf815 : Add a simple routine to determine the typical system directory for temporary data.
    • bf841cf : Thumb2 assembly parsing and encoding for MSR/MRS.
    • 97f50f3 : Thumb2 assembly parsing and encoding for MRC/MRC2/MRRC/MRRC2.
    • 95be01a : Thumb2 assembly parsing and encoding for MOVT.
    • c2d3164 : Thumb2 assembly parsing for MOV in IT block.
    • d6361c0 : DWARF: Reorder fields to reduce padding.
    • 1d2fd75 : Don't mark objc_retainBlock as nounwind. It calls user copy constructors which could theoretically throw.
    • 2110482 : objc_retainBlock is not NoModRef because it can update forwarding pointers in memory relevant to the optimizer. rdar://10050579.
    • d0588e2 : ARM fix assembly parser handling of ranges in register lists.
    • 0942255 : DWARF: Improve indentation of DIE dumping so it's easier to see the structure.
    • 0d4fea7 : Ignore the cloning of unknown registers.
    • 1c0b24f : llvm-dwarfdump: Make the "is debug info section" heuristic stricter so it doesn't accidentaly picks up the wrong section.
    • 0b7b6a0 : Add comment.
    • c4c6338 : Hoist back-copies to the least busy dominator.
    • 6148225 : Move state var to private class member.
    • dcd9996 : Add APInt support for converting to/from hexatridecimal strings
    • 436fe84 : Add integer promotion support for vselect
    • a08e255 : Fix mem type for VEX.128 form of VROUNDP*. Remove filter preventing VROUND from being recognized by disassembler.
    • 3bb43a8 : Make disassembling of VBLEND* print immediate as a XMM/YMM register name. Fixes PR10917.
    • 6a9795a : Add test case for PR10851.
    • c4cc40c : One more patch towards JIT support for Mips. - Add TSFlags for the instruction formats. The idea here is to use as much encoding as possible from getBinaryCodeForInstr, and having TSFLags formats for that would make it easier to encode most part of the instructions (since Mips encodings are pretty straightforward) - Improve the mips mechanism for compilation callback - Add Mips specific code for invalidating the instruction cache - Next patch will address wrong tablegen encoding
    • 484ddf5 : Teach the foldable tables about 128-bit AVX instructions and make the alignment check for 256-bit classes more strict. There're no testcases but we catch more folding cases for AVX while running single and multi sources in the llvm testsuite.
    • 5ca0d14 : Vector shuffle mask i32 4, i32 5, i32 2, i32 3 should yield "movsd", not "movss".
    • 553f933 : Don't rely in algorithm being pulled in transitively.
    • ac241fe : Object: make the following changes into SymbolRef
    • 357b571 : Remove unimplemented function prototypes from PathV2. They can be readded when someone cares enough.
    • 358f4fd : DWARF: Port support for parsing .debug_aranges section from LLDB and wire it up to llvm-dwarfdump.
    • 8366234 : ObjectFile: Add support for mach-o-style dSYM companion files.
    • d2aaaf3 : Remove ancient debug info constructs from test cases, they are not relevant to test case's main objective.
    • 64789c5 : Remove unnecessary old test.
    • 15ec085 : DebugInfo: Don't print DIEs multiple times.
    • e640a22 : Fix indenting.
    • f1c21a8 : First step in supporting #line directives in assembler. This step parses the #line directives with the needed support in the lexer. Next will be to build a simple file/line# table mapping source SMLoc's for later use by diagnostics. And the last step will be to get the diagnostics to use the mapping for file and line numbers.
    • 4bffb62 : unittests/Support/DataExtractorTest.cpp: Specify ULL explicitly to a few constants.
    • 393bfcb : Distinguish complex mapped values from forced recomputation.
    • f2e6d33 : Update tests. Remove irrelevant tests.
    • d300b94 : Remove unnecessary scope resolution operator.
    • 8395c91 : Delete test cases that generate code for allegrex/psp and cannot be repurposed.
    • b21abfe : Implement -split-spill-mode=size.
    • 596f447 : Fix check for unaligned load/store so it doesn't catch over-aligned load/store.
    • 4aa3fea : Style & indentation tweaks.
    • 13b8d1e : Make use of Eli's FileCheck sorcery to improve this test.
    • c67d184 : Add a check to make sure schedulePass() has not deleted stale RequiredPass.
    • fe73121 : Error out on CodeGen of unaligned load/store. Fix test so it isn't accidentally testing that case.
    • 7782a58 : Correct disassembly printing of Thumb2 post-incremented LDRD and STRD.
    • d7a2b3b : There's only 16 regs legal in a register list.
    • b04546f : Tidy up a few 80 column violations.
    • 8f310d9 : Tidy up a bit.
    • a4b97f3 : Add pattern used to match MipsLo, which is needed when the instruction selector tries to match a dead MipsLo node (explanation in the link below).
    • 8f28aaf : Fix the assertion which checks the size of the input operand.
    • 302fdec : Disable tests which generate code for allegrex or psp.
    • e1490d1 : update checked pattern
    • dfb5935 : swap vselect operand order - pr10907
    • edca044 : Remove include of header that doesn't exist (yet).
    • 8a23a77 : I know copy&paste!
    • 72c0d7f : Sketch out a DWARF parser.
    • 8c74f7f : Add the DataExtractor utility class.
    • df24e1f : Add versions 256-bit versions of alignedstore and alignedload, to be more strict about the alignment checking. This was found by inspection and I don't have any testcases so far, although the llvm testsuite runs without any problem.
    • 809f17f : Revert the remaining part of r139528. According to PR10907 the bug seems to be in the VSELECT operands order, so I'll leave the fix for Nadav.
    • aec5861 : Add vselect target support for targets that do not support blend but do support xor/and/or (For example SSE2).
    • 48ae99f : Support for PSP is gone too.
    • 516f52e : [tablegen] In ClangAttrEmitter.cpp handle SourceLocation arguments to attributes.
    • 3a2d80d : Use a cache to maintain list of machine basic blocks for a given UserValue.
    • e5a2e36 : Add SplitEditor::markOverlappedComplement().
    • b6b7f51 : Teach the Thumb ASM parser that BKPT is allowed in IT blocks, even though it is always executed unconditionally.
    • abcc73e : Eliminate the extendRange() wrapper.
    • 2152307 : It is not necessary to search for mipsallegrex in target triple string.
    • 12c7e90 : Fix encoding of Thumb2 shifted register operands with RRX shifts.
    • ee5655d : Switch extendInBlock() to take a kill slot instead of the last use slot.
    • c1c622e : Use a separate LiveRangeCalc for the complement in spill modes.
    • de9ddbf : Maintain hexadecimal order.
    • c9dccb8 : In ClangAttrEmitter.cpp emit code that allows attributes to keep their source range.
    • 4bbeb18 : Only disassembler instructions with vvvv != 1111 if the instruction actually uses the vvvv field to encode an operand. Fixes PR10851.
    • 58bbb81 : Remove filter that was preventing MOVDQU/MOVDQA and their VEX forms from being disassembled. Also added encodings for the other register/register form of these instructions. Fixes PR10848.
    • 6b0b2d6 : Fix encoding of VMOVDQU to not simultaneously be 'TB OpSize' and 'XS'. 'XS' is correct and seems to have been taking priority.
    • effb647 : [indvars] Revert r139579 until 401.bzip -arch i386 miscompilation is fixed. PR10920.
    • edd4f8b : Unbreak msvc.
    • dd9d758 : Disable IV rewriting by default. See PR10916.
    • 603fff3 : Generalize test case to handle multiple indvars modes.
    • 3c8015a : Generalize this test's CHECK statements to handle different indvars modes.
    • 2e95d76 : This test only makes sense with -enable-iv-rewrite.
    • 885f1a0 : Zap some junk from the ARM instruction descriptions.
    • 94f2c23 : [indvars] Fix bugs in floating point IV range checks noticed by inspection.
    • cee58a6 : Silence false positive uninitialized variable warnings from GCC.
    • b5a457c : Extract live range calculations from SplitKit.
    • 1582e7f : Add comment to clarify the behavior of a helper in DSE.
    • 5ac7c7d : Correct grammar.
    • f73c881 : Fix the assembler strings for a couple of atomic instructions. Doesn't really matter much in practice, but it's a bit cleaner.
    • 2d53969 : Tidy up a bit.
    • 857ad22 : Conditionalize indvars test that relies on SCEV expansion of geps, which is only relevant with canonical IVs
    • 8970060 : Change testcase commandline to be more strict and silence buildbots
    • 5fc4810 : Fix PR10845. SUBREG_TO_REG shouldn't be used when the input and destination types are equal!
    • 27cea8e : indvars test only relevant for -enable-iv-rewrite.
    • 9267854 : Fix a failing ELF Thumb test. I _think_ this is right, but it's not totally clear to me what this test is doing. Could someone on an ELF platform check?
    • 3669915 : Introduce a bit of a hack.
    • ccb7c90 : gold plugin: don't report error on non-bitcode (e.g. ELF) files.
    • cd00dc6 : Thumb2 POP's don't allow the PC as an operand, and PUSH's don't allow the SP either.
    • 457d53d : Revert the wrong part of r139528, and fix testcases.
    • fd92d2e : Fix encoding of PC-relative LDRSHW with an immediate offset.
    • 26e5285 : Conditionalize indvars tests that rely on SCEV expansion of geps, which is relevant with canonical IVs. Anything else being checked by these tests is already covered by early CSE.
    • 2bc3d52 : Change a bunch of isVolatile() checks to check for atomic load/store as well.
    • a073795 : There's no need to add additional predicate operands when converting a tB to a tBfar now. Fixes nightly test failures on armv6 Thumb. rdar://problem/10110404
    • c27c734 : Fix typo.
    • 8e03a82 : Not sure how CMPPS and CMPPD had already ever worked, I guess it didn't. However with this fix it does now.
    • 93474f5 : Organize a bit the operand names for CMPPS and CMPPD
    • cf35542 : Realign BLEND patterns to match the general style for patterns in .td file.
    • 3445df7 : Fix 80-columns
    • a3157b4 : Port more encoding tests to decoding tests, and correct an improper Thumb2 pre-indexed load decoding this uncovered.
    • 29da5e6 : Removing indvars tests that directly test canonical IVs and nothing else.
    • f21bdf4 : Rename -disable-iv-rewrite to -enable-iv-rewrite=false in preparation for default change.
    • 811ae5b : Add asserts to keep front-ends honest while encoding debug info into LLVM IR using DIBuilder.
    • 9f3b6a5 : Fix mistake in test runline.
    • 8f7ca5d : Test case for r139453, WidenIV::GetExtendedOperandRecurrence.
    • 5443140 : Add DW_ATE_UTF, which clang started using in my previous commit!
    • a16a25d : Remove the -compact-regions flag.
    • 708d06f : Add an interface for SplitKit complement spill modes.
    • 3d4ec14 : Update comments to reflect some (not so) recent changes.
    • a1d16b5 : Associate a MemOperand with LDWCP nodes introduced during ISel.
    • 2cb6c1b : Mark LDWCP as having no side effects.
    • 5ed0983 : Format patterns, remove unused X86blend patterns
    • 136046c : Fix disassembling of one of the register/register forms of MOVUPS/MOVUPD/MOVAPS/MOVAPD/MOVSS/MOVSD and their VEX equivalents. Fixes PR10877.
    • 0381979 : Fix disassembling of reverse register/register forms of ADD/SUB/XOR/OR/AND/SBB/ADC/CMP/MOV.
    • 842f58f : Fix disassembling of PAUSE instruction. Fixes PR10900. Also fixed NOP disassembling to ignore OpSize and REX.W.
    • e4481d8 : s/SequeuentiallyConsistent/SequentiallyConsistent/g
    • 5366ca4 : Fix verb tense agreement.
    • fbad25e : CR fixes per Bruno's request.
    • cfeb55c : Really un-XFAIL the testcase, like I said I would in r139458.
    • 106f6e7 : r139454 activates an assert in a case where we were doing the right thing anyway. Make that explicit, and un-XFAIL the testcase.
    • 81cbb0a : Fix the asserts in lib/Target/X86/X86ELFWriterInfo.cpp and lib/ExecutionEngine/MCJIT/MCJIT.cpp from:
    • 2db8628 : Fixed an assert from:
    • 20151da : [disable-iv-rewrite] Allow WidenIV to handle NSW/NUW operations better.
    • 5433767 : Set NSW/NUW flags on SCEVAddExpr when the operation is flagged as such.
    • 2e3734e : Fix asserts in CodeGen from:
    • 1ad60c2 : Thumb2 parsing and encoding for MOV(immediate).
    • 33ff5ae : Fix test cases. Generate code for Mips32r1 unless a Mips32r2 feature is tested.
    • 921d01a : LDM writeback is not allowed if Rn is in the target register list.
    • 112fb73 : Fix an ambiguously nested if.
    • cd4338f : Fix buildbot breakage caused by r139415. I missed one instance of a manually create ARM::tB.
    • 08fef88 : Fix assembly/disassembly of Thumb2 ADR instructions with immediate operands.
    • 46ac94b : O64 will not be supported.
    • 5881586 : Make F31 and D15 non-reserved registers.
    • c3ab388 : tidy up a bit
    • 51f6a7a : Thumb unconditional branches are allowed in IT blocks, and therefore should have a predicate operand, unlike conditional branches.
    • 13d8baa : Update Clang AST attribute reader tblgen generation to match with ASTReader change
    • 9a439af : Mips32 does not reserve even-numbered floating point registers.
    • 9db817f : Make the SelectionDAG verify that all the operands of BUILD_VECTOR have the same type. Teach DAGCombiner::visitINSERT_VECTOR_ELT not to make invalid BUILD_VECTORs. Fixes PR10897.
    • 8ddf653 : Drop support for Mips1 and Mips2.
    • 8ffad56 : Implement vector-select support for avx256. Refactor the vblend implementation to have tablegen match the instruction by the node type
    • 468709e : Thumb2 assembly parsing and encoding for MLA and MLS.
    • a50c6d9 : Don't tack "Instruction not interpretable yet!" onto the end of the instruction.
    • 84d043a : Thumb2 assembly parsing and encoding for MCR, MCR2, MCRR, MCRR2.
    • 1e0fff1 : Tidy up formatting a bit.
    • 9510226 : Thumb2 assembly parsing and encoding for LSL.
    • d4b72de : Thumb2 assembly parsing and encoding for LDRT.
    • 56806c2 : Thumb2 assembly parsing and encoding for LDRSHT.
    • a315a99 : Thumb2 assembly parsing and encoding for LDRSH.
    • 578edfb : Thumb2 assembly parsing and encoding for LDRSBT.
    • 0811fe1 : Thumb2 assembly parsing and encoding for LDRSB.
    • 95d397c : Thumb2 assembly parsing and encoding for LDRH.
    • 1efd9a0 : Shuffle a bit.
    • d199d0c : Drop support for Allegrex. Allegrex implements a variant of Mips2.
    • b6aed50 : Thumb2 assembly parsing and encoding for LDREX/LDREXB/LDREXD/LDREXH.
    • 1ab7c8e : Reapply r139247: Cache intermediate results during traceSiblingValue.
    • 39d7802 : Comment formatting.
    • 9b4a2ac : Update docs to reflect recent addition of new CompileUnit elements.
    • e3a0adf : Add FIXME.
    • 73c8415 : Mark the eh.typeid.for intrinsic as being 'const', which it is inside any given function. As pointed out by John McCall, this is needed to have redundant eh.typeid.for tests be eliminated in the presence of cleanups.
    • d3be6ec : Add disassembler test for Intel syntax. Tests r139353.
    • ccfa4ed : Fix handling of Intel syntax disassembling of movs and stos to stop being blank. Also fixed scas, and cmps to always print size suffix in Intel syntax since its abiguous without arguments. Fixes PR10875.
    • ad5f0c9 : Change default target architecture from Mips1 to Mips32r1 in preparation for removing support for Mips1 and Mips2.
    • d40b0b0 : Remove dead code.
    • 58856ea : Fix release build: MachOObjectFile.cpp:524: error: unused variable 'NumLoadCommands' [-Wunused-variable]
    • c170f5f : gold plugin: report errors occured in lto_module_create_from_*
    • 404507e : 80 columns.
    • 9aee335 : Directly point debug info to the stack slot of the arugment, instead of trying to keep track of vreg in which it the arugment is copied. The LiveDebugVariable can keep track of variable's ranges.
    • 441462f : All conditional branches are disallowed in IT blocks, not just CBZ/CBNZ.
    • d2fc31b : Soft fail CBZ/CBNZ in the disassembler if they appear inside an IT block.
    • d1e002a : Formatting and typo.
    • ee64be9 : Dix the 80-columns and remove unsupported v8i16 type from the list of legal vselect types.
    • a77295d : Thumb2 assembly parsing and encoding for LDRD(immediate).
    • 7ec8fb8 : Add a AVX version of a simple i64 - f64 bitcast. This could be triggered using llc with -O0, which wouldn't let it be folded and expose the lack of this pattern.
    • 7cf79a8 : Reapply testcase from r139309!
    • 64a17b3 : Make sure to handle the case where emitPredicateMatch returns false. Noticed by inspection.
    • 5afc190 : Fix a Darwin x86_64 special case of a jmp to a temporary symbol from an atom without a base symbol that must not have a relocation entry.
    • 0fcab07 : Add support for relocations to ObjectFile.
    • cbf479d : * Combines Alignment, AuxInfo, and TB_NOT_REVERSABLE flag into a single field (Flags), which is a bitwise OR of items from the TB_* enum. This makes it easier to add new information in the future.
    • caa60f1 : Remove this crashing test, until I figure out what's going wrong here
    • 814c6ce : Add AVX versions of blend vector operations and fix some issues noticed in Nadav's r139285 and r139287 commits.
    • 7db2d3a : Fix PR10844: Add patterns to cover non foldable versions of X86vzmovl. Triggered using llc -O0. Also fix some SET0PS patterns to their AVX forms and test it on the testcase.
    • 5d97ee3 : Added LateParsed property to TableGen attributes.
    • 9ea33b0 : Add tests for Thumb2 LDRB indexed addressing w/ writeback.
    • 4b36e07 : This test is already covered by llvm/trunk/test/CodeGen/X86/vsel.ll
    • cbdd2d1 : add a testcase for the previous patch
    • 0d76b19 : Fix warning on windows; use of comparison with bool argument.
    • ffe3e7d : Add X86-SSE4 codegen support for vector-select.
    • 6d483c2 : lto/addAsmGlobalSymbols: fast path when no module level asm is present.
    • 603e103 : lto/addAsmGlobalSymbols: fail fracefully when the target does not define AsmParser.
    • 7809180 : Adding myself to test my new commit powers.
    • 22b4c81 : Fix a use of freed string contents.
    • ed968a9 : whitespace
    • 184166d : A couple minor corrections to r139276.
    • 81ac8dd : Fix the logic in BasicAliasAnalysis::aliasGEP for comparing GEP's with variable differences so that it actually does something sane. Fixes PR10881.
    • e64fb28 : Thumb2 assembly parsing and encoding for LDR post-indexed.
    • eeec025 : Thumb2 assembly parsing and encoding for LDR pre-indexed w/ writeback.
    • 170580e : Remove the "common" set of instructions shared between ARM and Thumb2 modes. This is no longer needed now that Thumb2 has its own copy of the STC/LDC instructions.
    • f0eee6e : Thumb2 assembly parsing and encoding for LDRBT.
    • 489c693 : Thumb2 assembly parsing and encoding for LDRB(register).
    • ab899c1 : Thumb2 assembly parsing and encoding for LDR(register).
    • 3e328ec : Add two notes for correlated-expression optimizations.
    • 0472e04 : Revert r139247 "Cache intermediate results during traceSiblingValue."
    • 8bb5a86 : Thumb2 assembly parsing and encoding for LDRB(immediate).
    • 1aedfb4 : Thumb2 assembly parsing and encoding for LDR(literal).
    • 8a83f71 : Create Thumb2 versions of STC/LDC, and reenable the relevant tests.
    • ed1cb6d : Add tests for Thumb2 LDR(immediate) from r139254.
    • a8307dd : Thumb2 parsing and encoding for LDR(immediate).
    • 94f914e : Thumb2 parsing and encoding for LDMDB.
    • a5d5856 : Second of a three-patch series aiming to fix MSR/MRS on Cortex-M. This adds predicate checking to the Disassembler.
    • 2c207a0 : Cache intermediate results during traceSiblingValue.
    • d5ccb05 : Fix atomic load and store on x86 to pass -verify-machineinstrs (and possibly fix some subtle bugs involving passes which check mayStore()).
    • 9050288 : Update test for 139243
    • cfbb3a7 : Thumb2 ldm/stm 'db' mnemonics don't have a '.w' suffix.
    • 76ecc3d : Thumb2 parsing and encoding for LDMIA.
    • 6de3c6f : Port more assembler tests over to disassembler tests, and fix a minor logic error that exposed.
    • b950585 : Refactor instprinter and mcdisassembler to take a SubtargetInfo. Add -mattr= handling to llvm-mc. Reviewed by Owen Anderson.
    • 758ba1f : When inlining exception handling code into another function, ensure that duplicate tests are eliminated (for example if the two functions both have a catch clause catching the same type, ensure the redundant one is removed). Note that it would probably be safe to say that eh.typeid.for is 'const', but since two calls to it with the same argument can give different results (but only if the calls are in different functions), it seems more correct to mark it only 'pure'; this doesn't get in the way of the optimization.
    • ffa5a76 : Thumb2 use 'ldm' as default mnemonic.
    • ca59221 : Detect attempt to use segmented stacks on non ELF systems and error (not assert) early.
    • 81d2e39 : Better diagnostic location information for mnemonic suffices.
    • 68b859f : Another forgotten trampoline testcase.
    • e8e721f : Forgot to add this trampoline testcase.
    • 981a010 : Relax the MemOperands on atomics a bit. Fixes -verify-machineinstrs failures for atomic laod/store on ARM.
    • 08708c8 : Dependency should be on the output file name, not the dependency file name.
    • 541a81c : While sinking machine instructions, sink matching DBG_VALUEs also otherwise live debug variable pass will drop DBG_VALUEs on the floor.
    • c8725d1 : Reenable compact unwind by default. However, also emit the old version of unwind information for older linkers.
    • e421ad6 : memset_pattern16 uses a 16 BYTE pattern, not a 16 BIT pattern. Add comments to that effect.
    • 69acc93 : Teach BasicAA about the aliasing properties of memset_pattern16. Fixes PR10872 and rdar://problem/10065079.
    • 218affc : ISB is HasDB, not just HasV7.
    • aa833e5 : Thumb2 parsing and encoding for ISB.
    • 8f6d810 : Thumb2 parsing and encoding for EOR.
    • 94d1c48 : Thumb2 parsing and encoding for DSB.
    • 06c1a51 : Thumb2 parsing and encoding for DMB.
    • 756a0a1 : Disable these tests harder. They're XFAIL'd, but that means they still run, and these tests all infinitely recurse, bringing my system down into swapping hell.
    • 7795190 : Thumb2 parsing and encoding for DBG.
    • ef88a92 : Thumb2 parsing and encoding for CMN and CMP.
    • c103a08 : This transform only handles two-operand AddRec's. Prevent it from trying to handle anything more complex. Fixes PR10383 again!
    • 34c4485 : Add mayLoad/mayStore markings to ARM 64-bit atomic pseudo-instructions.
    • 0b533a3 : Thumb2 parsing and encoding for CLZ.
    • ad2dad9 : Thumb2 parsing and encoding for CLREX.
    • 3995059 : Port more encoding tests over to Thumb2 decoding tests.
    • 75ebc0e : Add -verify-indvars for imperfect SCEV trip count verification after indvars.
    • 79d56a6 : Thumb2 parsing and encoding for CDP/CDP2.
    • 5c984df : Fix comment. Noticed by Duncan.
    • 28b77e9 : Add codegen support for vector select (in the IR this means a select with a vector condition); such selects become VSELECT codegen nodes. This patch also removes VSETCC codegen nodes, unifying them with SETCC nodes (codegen was actually often using SETCC for vector SETCC already). This ensures that various DAG combiner optimizations kick in for vector comparisons. Passes dragonegg bootstrap with no testsuite regressions (nightly testsuite as well as "make check-all"). Patch mostly by Nadav Rotem.
    • 4a51708 : Fix fall outs from my recent change on how carry bit is modeled during isel. Now the 'S' instructions, e.g. ADDS, treat S bit as optional operand as well. Also fix isel hook to correctly set the optional operand. rdar://10073745
    • 2048c37 : Use IRBuilder.
    • 98447da : ARM .code directive should always go to the streamer.
    • 96428ce : Fix style issues and typos found by Duncan.
    • d8ab8e9 : As a first step, emit both the compact unwind and CIE/FDEs for a function.
    • 81856f7 : Try again at r138809 (make DSE more aggressive in removing dead stores at the end of a function), now with less deleting stores before memcpy's.
    • 9b0e1e7 : Atomic pseudos don't use (as in read) CPSR. They clobber it.
    • fa515ec : Now, named mdnode llvm.dbg.cu keeps track of all compile units in a module. Update DebugInfoFinder to collect compile units from llvm.dbg.cu.
    • 4a544a7 : Split the init.trampoline intrinsic, which currently combines GCC's init.trampoline and adjust.trampoline intrinsics, into two intrinsics like in GCC. While having one combined intrinsic is tempting, it is not natural because typically the trampoline initialization needs to be done in one function, and the result of adjust trampoline is needed in a different (nested) function. To get around this llvm-gcc hacks the nested function lowering code to insert an additional parent variable holding the adjust.trampoline result that can be accessed from the child function. Dragonegg doesn't have the luxury of tweaking GCC code, so it stored the result of adjust.trampoline in the memory GCC set aside for the trampoline itself (this is always available in the child function), and set up some new memory (using an alloca) to hold the trampoline. Unfortunately this breaks Go which allocates trampoline memory on the heap and wants to use it even after the parent has exited (!). Rather than doing even more hacks to get Go working, it seemed best to just use two intrinsics like in GCC. Patch mostly by Sanjoy Das.
    • ecd37bc : Fix typo in comment again.
    • 9115fba : Apparently we compile the code, not the comments. Thanks Eli!
    • e618099 : Fix typo in comment.
    • 8cfb2f8 : Nope! I had it right the first time. Revert the operative part of r139135 and add more showing of my work.
    • 28682ae : Fix flipped sign. While there, show my math.
    • 980e9f3 : No no no, fix typo properly!
    • fa151a7 : The logic inside getMulExpr to simplify {a,+,b}*{c,+,d} was wrong, which was visible given a=b=c=d=1, on iteration #1 (the second iteration). Replace it with correct math. Fixes PR10383!
    • b2840fd : Revert r139126 due to selfhost failures reported by buildbots.
    • 77b7352 : Teach SCEV to report a max backedge count in one interesting case in HowFarToZero; the case for a canonical loop.
    • 1fac6b5 : Add a new MC bit for NaCl (Native Client) mode. NaCl requires that certain instructions are more aligned than the CPU requires, and adds some additional directives, to follow in future patches. Patch by David Meyer!
    • 3bca101 : Update the C++ backend to use the new ArrayRef'ified APIs. Patch by arrowdodger!
    • 7442a03 : Fix typo in comment.
    • ae707bd : InstSimplify: Don't try to replace an extractvalue/insertvalue pair with the original value if types don't match.
    • ad99ef8 : Delete trivial landing pads that just continue unwinding the caught exception.
    • dabc280 : Add some simple insertvalue simplifications, for the purpose of cleaning up do-nothing exception handling code produced by dragonegg.
    • 26eb870 : Use canonical forms for the branch probability zero heutistic.
    • fec0c6f : As a (rather delayed) followup to r136738 which stopped building the edis shared library in the Makefile build, also stop building it in the CMake build.
    • 4c07bfb : Complete the removal of FindBison from CMake. Noticed this when browsing some CMake patch backlog...
    • cb8d8fa : Update the CMake documentation to the correct variables.
    • a268468 : Use Duncan's patch to delete the instructions in reverse order (minus the landingpad and terminator).
    • 66d1836 : The insertion point for the loads is right before the llvm.eh.exception call. The call may be in the same BB as the landingpad instruction. If that's the case, then inserting the loads after the landingpad inst, but before the extractvalues, causes undefined behavior.
    • e4553af : valgrind: Suppress glibc's optiized strcasecmp harder.
    • c53479d : Use internal storage for command line option.
    • 17fe6c4 : Don't reload the values that are already there. The llvm.eh.resume uses the same values that the resume instruction uses. PR10850
    • 5a76f00 : Exclude more arm jit failures pending PR10783.
    • 2c84e96 : Add AVX versions to match AESENC/AESDEC intrinsics. This hopefully ends the cycle of missing AVX counterparts of already present SSE* patterns
    • 9f63615 : Add AVX version of a SSE4.1 VPBLENDVB pattern
    • d01ef7d : Add AVX versions of SSE4.1 EXTRACTPS patterns
    • 2b0e0a4 : Add AVX versions for SSE4.1 MOVZX* patterns
    • a678065 : Add one more AVX pattern for MOVZPQILo2PQI
    • d29dd5e : Move PUNPCKLQDQ splat pattern close to the instruction definition and duplicate it for AVX mode.
    • 914a2a3 : Add AVX pattern versions for PSHUFB,PSIGN{B,W,D}
    • a4ac989 : Add AVX versions of MOVZDI2PDI patterns. Use SUBREG_TO_REG to indicate that the AVX versions (even the 128-bit ones) all clear the upper part of the destination register.
    • 152a287 : Enforce subtarget checks in a few places to be explicit when the pattern should be matched
    • 5ab6dcc : Tidy up code moving patterns to their appropriate place!
    • 0e59a04 : Add AVX versions of FsMOVAPS and FsMOVAPS. Teach X86InstrInfo how to use it!
    • 645b8be : Teach X86FastISel to use AVX versions of instructions when possible
    • 1aab551 : Fix 80-column and style
    • e4ccf8a : Tidy up some SSE/AVX convert intrinsics. Also add an AVX version of OptForSize pattern
    • 7ab15f6 : Fix a truly heinous bug in DAGCombine related to AssertZext. If we have a chain of zext - assert_zext - zext - use, the first zext would get simplified away because of the later zext, and then the later zext would get simplified away because of the assert. The solution is to teach SimplifyDemandedBits that assert_zext demands all of the high bits of its input, rather than only those demanded by its users. No testcase because the only example I have manifests as llvm-gcc miscompiling LLVM, and I haven't found a smaller case that reproduces this problem. Fixes rdar://problem/10063365.
    • b116142 : Revert r129875, XFAILing this test for arm, since the fix was reverted.
    • 5047d76 : Pseudo CMOV instructions don't clobber EFLAGS.
    • b8e052e : Check for EFLAGS live-out before clobbering it.
    • 4a1b9d8 : Use existing function.
    • 83452b2 : Thumb2 parsing and encoding for CBZ/CBNZ.
    • 6c3e11e : Thumb2 parsing and encoding for BXJ.
    • cefd202 : Thumb2 parsing and encoding for BIC.
    • 0b9a3d3 : Thumb2 parsing and encoding for BFI.
    • 7413f41 : Thumb2 parsing and encoding for BFC.
    • a110988 : Thumb2 parsing and encoding of B instruction.
    • 7a15a9a : Attempt to silence known valgrind errors.
    • 439f71e : Remove unused variables.
    • 47e208b : Try to eliminate the use of the 'unwind' instruction.
    • 4136d23 : Don't fast-isel for atomic load/store; some cases require extra handling missing from fast-isel.
    • 5f25fb0 : Thumb2 parsing and encoding for ASR.
    • d594119 : Better fix for this testcase. Update it to the new EH scheme entirely.
    • cc6927b : Update for new EH stuff. (I'm not sure if this is 100% correct.)
    • 6984625 : Test case update for unroll-scev.
    • 252ef7a : Comment and clarifying assert.
    • 2714390 : No need to get fancy inserting a PHI node when the values are stored in stack slots. This fixes a bug where the number of nodes coming into the PHI node may not equal the number of predecessors. E.g., two or more landingpad instructions may require a PHI before reaching the eh.exception and eh.selector instructions.
    • 011dca7 : Make RecordVal Name an Init
    • d5705fe : Change X86 disassembly to print immediates values as signed by default. Special case those instructions that the immediate is not sign-extend. radr://8795217
    • 8e0c769 : Tidy up. Formatting.
    • 9dc31e8 : Update comments to reflect reality.
    • d299010 : Tidy up. 80 columns.
    • 5c1ac55 : Thumb2 parsing and encoding for AND (register).
    • 8040e06 : Simplify by using isFullCopy().
    • d199aa0 : Revert r138826 until PR10834 can be fixed.
    • f0851e5 : Thumb2 parsing and encoding for ADD (register).
    • 147272b : Darwin wants ctors/dtors to be ordered the other way round to linux.
    • 98f213c : Fix the disassembly of the X86 "crc32w %ax, %eax" instruction. Bug 10702.
    • ca52a7e : Tests for Thumb2 AND (immediate) instruction.
    • 9469d5c : Extra CHECK-NOT to make sure that GVN transform works properly.
    • dc07321 : -unroll-scev flag removal
    • 12d1ebe : Enable SCEV-based unrolling by default.
    • aca878c : Add FIXME. Thumb2 ADR encoding choice is non-trivial.
    • 8370d91 : Return undef value (instead of arbitrary) for wrong or undef index in ConstantVector.
    • 4c6b8be : ConstantVector returns arbitrary value for the wrong index. This fixes PR10813.
    • 8cec759 : Compare type size instead of type _store_ size to make sure that BitCastInst will be valid. This fixes PR10820.
    • 989621f : Pass signed (not unsigned) 10 bit field to SPU 'ori' instruction.
    • 5ffedb9 : Make IC_VEX* not inherit from IC_*. Prevents instructions with no VEX form from disassembling to their non-VEX form. Also prevents weak filter collisons that were keeping valid VEX instructions from decoding properly. Make VEX_L* not inherit from VEX_* because the VEX.L bit always important. This stops packed int VEX encodings from being disassembled when specified with VEX.L=1. Fixes PR10831 and PR10806.
    • 24fbb58 : Perform the upgrading of the old EH to the new EH in a more sane manner.
    • b0b9a67 : Update to new EH scheme.
    • a680444 : Fix 80 columns violations.
    • 6b13cd4 : Revert r131152, r129796, r129761. This code is currently considered to be unreliable on platforms which require memcpy calls, and it is complicating broader legalize cleanups. It is hoped that these cleanups will make memcpy byval easier to implement in the future.
    • 36a1601 : Don't drop alignment info on local common symbols.
    • 7df496d : Null-initialize to shut up -Wuninitialized warnings.
    • ee06443 : Fix apparent build error caused by r138948 on certain versions of GCC with -Werror. Sorry for the inconvenience.
    • 6bb4e7e : Reduce indentation. No functionality change.
    • c8c0fd3 : Change worklist driven deletion to be an iterative process. Duncan noticed this!
    • 770e16f : Fix test; sorry for any inconvenience.
    • 86b5db8 : Fix an issue with the IR sink pass found by inspection. (I'm not sure anyone is actually using this, but might as well fix it since I found the issue.)
    • 89e0f4b : Add missing newline.
    • 833a003 : Fix the build for us -Werror users. Remove broken emacs mode major notation marking a C++ file as C. No functionality change.
    • 81b4e43 : Make isSafeToSpeculativelyExecute() return the right answer for some new instructions. Found by inspection; not sure what practical impact, if any, this has.
    • bcf47a5 : XFAIL this test on arm until the backend is fixed.
    • d4f27d7 : This test depends on cmov being available.
    • 4a0a18a : Permit remat of partial register defs when it is safe.
    • 2f25d9b : ARM 'rscs' mnemonic is carry-setting 'rsc', not 'rs' with a 'cs' condition code.
    • a39ccdb : Fix vbroadcast matching logic to early unmatch if the node doesn't have only one use. Fix PR10825.
    • c047dca : Fix up r137380 based on post-commit review by Jim Grosbach.
    • 7f17b5a : t2Bcc is allowed to have a predicate without a preceding IT instruction.
    • ae779ee : Revert r138794, "Do not try to rematerialize a value from a partial definition."
    • 9d548d0 : Prevent remat of partial register redefinitions.
    • 61560e2 : Teach MachineLICM reg pressure tracking code to deal with MVT::untyped. Sorry, I can't come up with a small test case. rdar://10043690
    • 00c30d5 : Update to new EH scheme.
    • a8d1393 : Resubmit with fix. Properly remove the instructions except for landingpad, which should be removed only when its invokes are.
    • c1b4cd6 : Submitted this too early.
    • 1893cd3 : Don't DCE the landingpad instruction.
    • 65088e7 : Update to new EH scheme.
    • 15db556 : Update to new EH scheme.
    • aeaa9a8 : Update some tests to the new EH scheme.
    • 340d78f : PreRA scheduler should avoid cloning compares.
    • 35726bf : Don't forget to add the landingpad and resume instructions to the InstructionList.
    • 20ed2e7 : Thumb2 assembly parsing and encoding for ADD(immediate).
    • dd1e751 : Fixup for functions that return a bool.
    • b5d92d8 : Reenable test.
    • 3b5e99d : Revert accidental commit
    • 1b73866 : Disable this test until Bill fixes it properly.
    • de98273 : Static relocation model Thumb jump table interworking.
    • b45b11b : The asm parser currently selects the wrong encoding for non-conditional Thumb2 branches. However, this exposed a number of situations where the decoder was too permissive in allowing invalid instructions to decode successful. Specify additional fixed bits to close those gaps.
    • 08c2862 : Update to new EH scheme.
    • a29a6b9 : Update to new EH scheme.
    • 78ae1f7 : Remove old declare statements.
    • 6b94b67 : Update more tests to the new EH scheme.
    • 9359031 : Update more tests to the new EH scheme.
    • 24adac8 : Add tests for the transformations SCCP can do on atomic loads and stores (which are safe without any modifications).
    • 94fca83 : Fix Size Typing
    • fd245d9 : Revert r138894. This was failing on cmake-clang-i686-msvc10.
    • c075510 : Thumb2 t2Bcc should encode as t2B when condition is 'always'.
    • fc7bc58 : Move more code around and duplicate AVX patterns: MOVHPS and MOVLPS
    • 06c982d : Move MOVAPS,MOVUPS patterns close to the instructions definition
    • 453f495 : Remove "_Int" forms of MOVUPSmr and MOVAPSmr
    • ab98f9d : Update more tests to the new EH scheme.
    • b072dd9 : Update the tests to the new EH scheme.
    • 4f8aaa0 : Make sure we aren't deleting the landingpad instruction.
    • 721cb1f : Fix encoding for tBcc with immediate offset operand.
    • fcd75e5 : Misc cleanup; addresses Duncan's comments on r138877.
    • d84192f : When performing instruction selection for LDR_PRE_IMM/LDRB_PRE_IMM, we still need to preserve the sign of the index. This fixes miscompilations of Quicksort in the nightly testsuite, and hopefully others as well. rdar://problem/10046188
    • e0e42bf : Run the Thumb1 parser tests in Thumb2 mode, as well.
    • b80ab8e : Remove FIXME. Thumb2 MOV instruction will use separate custom tricks.
    • 62bb16c : Fill in type legalization for MERGE_VALUES in all the various cases. Patch by Micah Villmow. (No testcase because the issue only showed up in an out-of-tree backend.)
    • d82175c : Thumb NOP encoding varies depending on ARCH revision.
    • 559c277 : Fix roundtripping of Thumb BL/BLX instructions with immediate offsets instead of labels.
    • c9a9b44 : tBcc is OK to be predicated in Thumb2 outside of IT blocks (obviously).
    • ba567d6 : Generic expansion for atomic load/store into cmpxchg/atomicrmw xchg; implements 64-bit atomic load/store for ARM.
    • 72335d5 : Thumb2 parsing and encoding for ADC(register).
    • b71541a : After r138010, subroutine type does not have context info. Update type verifier accordingly. This fixes ptype.exp gdb testsuite regressions.
    • 4d3f329 : 64-bit atomic cmpxchg for ARM.
    • 334b530 : Fix typo. Patch by Liu.
    • d92e2e4 : Compress Repeated Byte Output
    • 0f3abd8 : Tweak Thumb1 ADD encoding selection a bit.
    • 6154582 : Put VMOVS widening under a command line option, off by default.
    • 31d27ce : This test requires sse, otherwise x87 ops will block tailcall optimization
    • e81abfd : Spelling and grammar fixes to problems found by Duncan.
    • ac86d43 : Make sure we don't crash when -miphoneos-version-min is specified on x86. Hopefully this will fix gcc testsuite failures.
    • c967ad8 : Rework this conditional a bit.
    • bbbc283 : lit: Normalize pathsep slashes also on %T.
    • 57d6a5e : - Move all MOVSS and MOVSD patterns close to their definitions - Duplicate some store patterns to their AVX forms! - Catched a bug while restricting the patterns subtarget, fix it and update a testcase to check it properly
    • fc646a6 : Remove unnecessary AVX checks
    • 5affa51 : Teach more places to use VMOVAPS,VMOVUPS instead of MOVAPS,MOVUPS, whenever AVX is enabled.
    • 0899f5c : Fix (movhps load) lowering / pattern to match more cases. rdar://10050549
    • 3d93861 : Some minor cleanups for r138845.
    • 2bdffe4 : Some 64-bit atomic operations on ARM. 64-bit cmpxchg coming next.
    • 8f00ffc : Fix test typo.
    • f940a1a : Remove the old tail duplication pass. It is not used and is unable to update ssa, so it has to be run really early in the pipeline. Any replacement should probably use the SSAUpdater.
    • eaca928 : Fix issues with disassembly of IT instructions involving condition codes other the EQ/NE. Discovered by roundtrip testing.
    • 21df36c : Fix encoding of CBZ/CBNZ Thumb2 instructions with immediate offsets rather than labels.
    • d452246 : Teach macho-dump to dump the uleb128s referred to by linkedit_data segments.
    • a7710ed : Fix encoding of PC-relative Thumb1 LDR's when using immediate offsets instead of labels.
    • 391ac65 : Fix encoding of Thumb1 B instructions with immediate offsets, which is necessary for round-tripping.
    • 10096db : Clean up whitespace.
    • e716124 : Fix off-by-one error Benjamin noticed.
    • 6cac202 : Add a triple.
    • 1333abc : Remove empty file.
    • 54c4735 : Speculatively revert r138809 in an attempt to fix DragonEgg.
    • 011a8e1 : Enable compact unwind info by default. This only applies to Darwin when CFI is disabled.
    • cda2a14 : Fix C++0x narrowing errors when char is unsigned.
    • 2ac6b01 : Preliminary documentation in docs/SegmentedStacks.html.
    • 3318d9c : Port Thumb2 assembler tests over to disassembler tests.
    • b0bf893 : Some test code to check if correct code is being generated. Patch by Sanjoy Das.
    • 5af214f : The code model of JIT should default to JITDefault.
    • 151ab3e : Adds support for variable sized allocas. For a variable sized alloca, code is inserted to first check if the current stacklet has enough space. If so, space is allocated by simply decrementing the stack pointer. Otherwise a runtime routine (__morestack_allocate_stack_space in libgcc) is called which allocates the required memory from the heap.
    • d07b7ec : Adds a SelectionDAG node X86SegAlloca which will be custom lowered from DYNAMIC_STACKALLOC.
    • 76927d7 : Emit segmented-stack specific code into function prologues for X86. Modify the pass added in the previous patch to call this new code.
    • 0f9827c : Command line option to enable support for segmented stacks: -segmented-stacks. Patch by Sanjoy Das!
    • 37fefc2 : Follow up to r138791.
    • 6e4be23 : When walking backwards to eliminate final stores to allocas at the end of a function, encountering an unrelated store should not cause us to give up like encountering a load does.
    • 9942aca : Teach macho-dump how to dump linkedit_data load commands.
    • bc6b89e : Add load commands from Lion to Macho.h.
    • d36d2db : Update docs: Bugpoint understands -O[123]
    • 7c12837 : Lit option for ignoring stderr output.
    • 0aaa919 : Set CR1EQ only when lowering vararg floating arguments (not any vararg arguments as before), unset CR1EQ otherwise.
    • e7815c2 : Fix typos in SPUMCTargetDesc.h
    • 7e14b24 : Fix typo in BlackfinFrameLowering.h
    • 4d8af4e : Fix typo in MSP430MCTargetDesc.h.
    • afaf80a : Fix typo in MipsMCTargetDesc.h; Patch supplied by Liu (proljc@gmail.com)
    • 3daa5c2 : Add vvvv support to disassembling of instructions with MRMDestMem and MRMDestReg form. Needed to support mem dest form of vmaskmovps/d. Fixes PR10807.
    • e497906 : Do not try to rematerialize a value from a partial definition. I don't currently have a good testcase for this; will try to get one tomorrow. rdar://problem/10032939
    • 342e316 : Change ARM / Thumb2 addc / adde and subc / sube modeling to use physical register dependency (rather than glue them together). This is general goodness as it gives scheduler more freedom. However it is motivated by a nasty bug in isel.
    • d376518 : Revert 138781. It's not playing nicely with the immediate forms for ADC.
    • e94a5b1 : Thumb2 assembler aliases for ADC/SBC w/o the .w suffix.
    • 694e0ff : Add missing encoding information for some of the GPR-FP register moves.
    • abd3f60 : Remove redundant tests from XFAIL'ed test file.
    • a01e124 : Thumb2 assembly parsing and encoding support for ADC(immediate).
    • 056cb4c : Remove test file. Superceded by other more exhaustive tests.
    • f8e1e3e : Thumb2 parsing and encoding for IT blocks.
    • fff64ca : Fix the disassembly of the X86 crc32 instruction. Bug 10702 and rdar://8795217
    • f370476 : Explicitly zero out parts of a vector which are required to be zero by the algorithm in LowerUINT_TO_FP_i32. This only has a substantial effect on the generated code when the input is extracted from a vector register; other ways of loading an i32 do the appropriate zeroing implicitly. Fixes PR10802.
    • d33b276 : Tidy up. Whitespace.
    • acb274b : Apply the same fix for the change in LDR_PRE_IMM/LDRB_PRE_IMM operand encodings to the load-store optimizer that I applied to the instruction selector in r138758. Fixes ary3 from the nightly test suite.
    • 8e5cf90 : Fix grammar, noticed by Duncan.
    • 1f26758 : Specify an additional fixed bit in the PLD/PLDW/PLI register-register encoding.
    • 6af6824 : Update tests to new EH model. Add landingpad instructions to landing pads.
    • c4e16de : addrmode_imm12 and addrmode2_offset encode their immediate values differently. Update the manual instruction selection code that was encoding them the addrmode2 way even though LDR_PRE_IMM/LDRB_PRE_IMM had switched to addrmode_imm12. Should fix a number of nightly test failures.
    • 89879ec : Fixes following the CR by Chris and Duncan:
    • 0da10cf : Improve handling of #-0 offsets for many more pre-indexed addressing modes.
    • 98ba358 : Initialize CompactUnwindSection so that other targets won't use an uninitialized value.
    • 4db5aca : Expand ATOMIC_LOAD and ATOMIC_STORE for architectures I don't know well enough to fix properly.
    • 7e0d22c : Tidy up. 80 columns.
    • 3dedf7e : Dump with dbgs() instead of printf.
    • 4a3d0a5 : Make GCC happy by adding parens.
    • 50e2ded : Add testcase for r138746.
    • 07700d4 : Update the load-store optimizer for changes to the operands on LDR_PRE_IMM and LDRB_PRE_IMM in r138653.
    • 9d74909 : Fix a test that wasn't testing the right thing.
    • 41dfabb : Move non-intruction patterns to a more appropriate place!
    • 63553c7 : Add support for parsing #-0 on non-memory-operand immediate values, and add a testcase that necessitates it.
    • 0e122d1 : Reapply r138695. Fix PassManager stack depths.
    • 05d7138 : Add AMDIL as valid target triple to LLVM.
    • 1c36ba5 : Remove premature previous commit.
    • fd9c4f7 : Fix PR5329: pay attention to constructor/destructor priority when outputting them. With this, the entire LLVM testsuite passes when built with dragonegg.
    • c98da24 : Encoding of instructions referencing segments has changed. Do what X86MCCodeEmitter does.
    • be6ceb6 : Bitcasts are transitive. Bitcast-Bitcast-X becomes Bitcast-X.
    • b1b051e : Fix integer overflow bug in raw_ostream::write. This showed up as a non-deterministic crash in the test suite. Fixes PR10055!
    • f5ec9b5 : The 'expected' argument to EXPECT_EQ is actually the first one; flip these tests around.
    • 2753ae3 : Silence GCC warnings and make an array const.
    • f66f76c : Report failure if there are less bytes than requested in a MemoryObject.
    • d326d3b : Reverted r138652, valgrind doesn't understand obj:*/tblgen.
    • df77a71 : Auto upgrade the old EH scheme to use the new one. This is on a trial basis. If things to disasterously over night, this can be reverted.
    • 8592a0c : Reverting r138695 to see if it fixes clang self host.
    • 884fb72 : Only delete instructions once.
    • 234e43a : Update to new EH scheme.
    • f2cf25b : Cannot have an llvm.eh.exception call in a non-landing pad block.
    • 8557e6c : These splits should be done whether they are critical edges or not.
    • b846192 : Fix PassManager stack depths.
    • 0005cc7 : Excluding ARM JIT tests until someone can fix this compilation path.
    • f1eab59 : Improve encoding support for BLX with immediat eoperands, and fix a BLX decoding bug this uncovered.
    • d7568e1 : Correct encoding of BL with immediate offset.
    • 4af54a4 : ARM assembly parsing tweak for pldw.
    • 9f7e831 : Spelling fail.
    • 89df996 : Thumb2 assembler parsing and encoding of IT instruction.
    • e8ef4cc : Update the dominator tree with the correct dominator for the new 'unwind' block.
    • 43f51ae : Add support for generating CMPXCHG16B on x86-64 for the cmpxchg IR instruction.
    • 51fb91c : Split the landing pad block only if it's a critical edge. Also intelligently split it in the other place where we're splitting critical edges.
    • 2b568fb : Fix ARM codegen breakage caused by r138653.
    • 1f4a32f : Revert r138606 until LowerInvoke has been converted to the new EH scheme.
    • 6c0046f : Whitespace and 80-col.
    • 9ab0f25 : invalid-LDR_PRE-arm.txt was already passing, but for the wrong reasons. We were failing to specify enough fixed bits of LDR_PRE/LDRB_PRE, resulting in decoding conflicts. Separate them into immediate vs. register versions, allowing us to specify the necessary fixed bits. This in turn results in the test being decoded properly, and being rejected as UNPREDICTABLE rather than a hard failure.
    • ae5ea6c : valgrind: Always suppress tblgen leaks.
    • 2b18881 : Don't sink landingpad instructions during ind-var simplification.
    • 6ca06cd : Use %% for literals in RUN lines.
    • 1af7f72 : Update for feedback from Jim.
    • 0f9d34c : lit: Add %T as a replacement for the output directory
    • 86ce852 : ARMDisassembler: Always return a size, even when disassembling fails.
    • 96425c8 : Support an extension of ARM asm syntax to allow immediate operands to ADR instructions. This is helpful for disassembler testing, and indeed exposed a disassembler bug that is also fixed here.
    • 06a531f : We don't care if TableGen leaks memory.
    • 54f8a9f : Don't insert branch hint lables that are never used.
    • 5a18f20 : Add a testcase for r138625.
    • 9bd655d : Fix PR10755 by checking for invalid predicate codes from UNPREDICTABLE t2IT instructions when decoding their successors. This is the last disassembly crash detected by exhaustive Thumb2 instruction space. Major thanks to Chandler Carruth for making this kind of exhaustive testing possible.
    • 8fd13b6 : Fix disassembling of VCVTSD2SI
    • 5434c1e : LoopInfo::updateUnloop fix, and verify Block-Loop maps.
    • 069e2ed : Atomic load/store on ARM/Thumb.
    • 9bb5488 : Address review comments.
    • 98d6d23 : SimplifyCFG: If we have a PHI node that can evaluate to NULL and do a load or store to the address returned by the PHI node then we can consider this incoming value as dead and remove the edge pointing there, unless there are instructions that can affect control flow executed in between.
    • 1a9a2d0 : Update to the new EH scheme.
    • 09908c4 : Look at only the terminators of the basic block. Also, if we're using the new EH scheme, return 'true' so that it doesn't try to run the old EH scheme's fixup on the new code.
    • c82a61c : Initial check in that will auto-upgrade the old EH scheme to the new EH scheme.
    • f1a2642 : Do the same as r138461. Mark VZEROALL as clobbering all YMM registers
    • b210cbf : Remove stray fullstop.
    • 6292ece : Add support for AVX 256-bit version of MOVDDUP!
    • 06ef923 : Make isMOVDDUP mask check more strict and update comments!
    • 32c371f : Constify Comparison
    • 9990683 : Port over additional encoding tests to decoding tests, and fix an operand ordering bug this exposed.
    • cf847bf : Intel family 6 model 44 is Gulftown/Westmere-EP and doesn't have AVX.
    • b9ca512 : ARM fix for missing implicit operands on ldmia_ret.
    • 51972da : whitespace
    • 0c49ac0 : Explicitly disallow predication in Thumb1 assembly.
    • ebc1db0 : Add more missing TB encodings to VEX instructions to allow them to be disassembled. Fixes remainder of PR10678.
    • 113061d : Give ATTR_VEX higher priority when generating the disassembler context table. Fixes disassembling of VEX instructions with 'pp'=00. Fixes subset of PR10678.